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'发生变化时调用。 –