我试图动态地用旧数组填充新数组,具体取决于settedState内部的id,这是代码。
“我无法使其正常工作”
handleChange: function (e) {
var self = this;
this.setState({ targetid: e.target.value });
var newArr = [];
newArr = this.state.data.filter(function(item){
return item.id === self.state.targetid;
}).map(function (item) {
return item;
})
this.setState({targetArr : newArr})
}
我真的不知道该怎么做。如果有人需要更多说明,请告诉我。
最佳答案
setState
不是同步函数,您尝试在写入之前先进入状态。您可以访问targetid
而不将其设置为状态。请尝试以下代码:
handleChange: function (e) {
var targetid = e.target.value;
var newArr = this.state.data.filter(function(item){
return item.id === targetid;
});
this.setState({
targetArr: newArr,
targetid: targetid
});
}
关于javascript - 在handleChange上,setState和具有新项的map数组取决于setedState,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41199706/