我在閱讀reactjs文檔的Forms部分,並試圖使用此代碼來演示onChange
的用法(JSBIN)。爲什麼調用react setState方法不會立即改變狀態?
var React= require('react');
var ControlledForm= React.createClass({
getInitialState: function() {
return {
value: "initial value"
};
},
handleChange: function(event) {
console.log(this.state.value);
this.setState({value: event.target.value});
console.log(this.state.value);
},
render: function() {
return (
<input type="text" value={this.state.value} onChange={this.handleChange}/>
);
}
});
React.render(
<ControlledForm/>,
document.getElementById('mount')
);
當我更新瀏覽器中的<input/>
值,第二console.log
的handleChange
回調打印相同value
爲第一console.log
,爲什麼我不能看到handleChange
回調的範圍this.setState({value: event.target.value})
結果裏面?
很好的回答。我需要做的事情是小心使用valueLink。如果你不需要格式化/屏蔽輸入,它會很好用。 – Dherik
完美。不知何故,我完全錯過了一個回調參數。 –
您可能還想查看'componentDidUpdate'。它會在州改變後被調用。如果我可以 – Keysox