嗨,大家好我试着做反应中的功能性setState,但我似乎无法实现它现在我有一个应该设置this.state.siocId状态的hanlder
handleChange(e) {
const {value} = e.target;
this.setState(state => ({
siocId: {...state.siocId, siocId: value}
}));
}
但这是设置this.state.siocId.siocId = value
,我可以做this.state.siocId = value
吗?我试过这一行没有成功siocId: {...state, siocId: value}
答案 0 :(得分:1)
如果您想在功能上设置状态,请使用此模式
handleChange(e) {
const {value} = e.target;
this.setState(function(prevState, props){
return {siocId: value}
});
}
另请参阅这些文章functional-setstate 和Function in setstae了解更多信息
但是,当状态值取决于先前的状态时,你应该使用功能设置。这是因为setstate调用不会立即运行
如果你的状态不依赖于以前的状态,请使用以下模式
handleChange(e) {
const {value} = e.target;
this.setState({
siocId: value
});
}
答案 1 :(得分:0)
您不需要使用functional setState
来实现您想要的功能,您只需编写
handleChange(e) {
const {value} = e.target;
this.setState({
siocId: value
});
}
这会给你this.state.siocId = value
答案 2 :(得分:0)
你过度复杂了 -
handleChange(e) {
const {value} = e.target;
this.setState({
siocId: value
});
}