【发布时间】:2015-10-20 13:49:59
【问题描述】:
我正在将数字值从 Numbers 组件发送到 Main 组件。一切正常,直到我将 Main 组件中的值设置为该组件的状态。
var Numbers = React.createClass({
handleClick: function(number){
this.props.num(number)
},
render: function(){
return (
<div>
<button onClick={this.handleClick.bind(null, 1)}>1</button>
<button onClick={this.handleClick.bind(null, 2)}>2</button>
<button onClick={this.handleClick.bind(null, 3)}>3</button>
</div>
)
}
})
var Main = React.createClass({
getInitialState: function(){
return {
number: 0
}
},
handleCallback: function(num){
console.log("number is right here: " + num);
this.setState({
number: num
})
console.log("but wrong here (previous number): " + this.state.number)
},
render: function() {
return (
<Numbers num={this.handleCallback} />
//<SomeComponent number={this.state.number} />
)
}
});
React.render(<Main />, document.getElementById('container'));
为什么会这样? handleCallback 函数中的第二个 console.log 打印前一个数字,而不是 num 参数中的数字。我需要正确的号码才能处于我的状态,因为我将立即将它作为我的 SomeComponent 组件中的道具发送。
【问题讨论】:
标签: javascript reactjs