console.log在打印空數組後打印該值兩次,而在打印從ajax調用中獲得的值時將打印該值。console.log正在打印數據兩次[reactjs]
與它下面印像「[]」和[回答說:「」]
我不知道它是越來越初始化這裏我把一個調試器它是在一次僅停止給定的值那裏只是用於打印AJAX數據值
{ 「狀態」:1, 「值」:4, 「數據」:{ 「ANSWER_TEXT」: 「回答」 } }
class Discuss extends React.Component {
constructor() {
super();
this.state = {
discussions: []
};
}
componentWillMount() {
this._getData();
}
_getAnswerText() {
return this.state.discussions.map(discussion => discussion.answer_text);
};
render() {
const comments = this._getComments();
return (<div> {comments} <ActionBar answer_text={this._getAnswerText()}/></div >);
});
}
_getData() {
$.ajax({
method: 'GET',
url: '/someurl'
success: (discussions) => {
var array = [];
array.push(discussions);
var dis = []
dis.push(array[0].data)
this.setState({
discussions: dis
});
}
});
}
}
class ActionBar extends React.Component {
constructor(props) {
super(props);
};
render() {
console.log(this.props.answer_text)
return (<div> {this.props.answer_text} </div>)
\t };
}
ReactDOM.render(<Discuss/>,document.getElementById('content'));
如果我們希望render()僅在加載數據後才工作,那麼'render()'方法將在'props'和'state'發生變化時調用。 –