我试图动态地用旧数组填充新数组,具体取决于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/

10-12 13:29