【问题标题】:react - setState find object item then assignreact - setState 找到对象项然后分配
【发布时间】:2016-07-20 08:16:28
【问题描述】:

我有一个处于状态的对象 -

this.state = {
  states: {
    na: 0, s1a: 0, s2a: 0, s3a: 0, s4a: 0, l1a: 0, l2a: 0, l3a: 0, t1a: 0, t2a: 0, t3a: 0,
    nb: 0, s1b: 0, s2b: 0, s3b: 0, s4b: 0, l1b: 0, l2b: 0, l3b: 0, t1b: 0, t2b: 0, t3b: 0
  },

我想在我的函数中更改某个键的值 -

onInputUpdated(id){
var array = {};
let char = id.slice(-1);

switch(char){
  case 'a':
    array[id] = this.getY(ReactDOM.findDOMNode(this.refs[id].refs.inp).value);
    break;

  case 'b':
    array[id] = this.getX(ReactDOM.findDOMNode(this.refs[id].refs.inp).value);
    break;
}

this.setState({
  states: { id : array[id]}
});

但是没有id,id代表字符串'na'或其他......那我该怎么做呢?有什么建议吗?顺便说一句 onIputUpdated(id) 是来自孩子的回调..

【问题讨论】:

    标签: object reactjs assign setstate


    【解决方案1】:

    首先,您不能直接更新嵌套状态。您将不得不更新整个“状态”对象。像这样的

    let oldStates = this.state.states; oldStates[id] = array[id]; this.setState({ states: { ...oldStates } });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-17
      • 1970-01-01
      • 2013-03-20
      • 1970-01-01
      • 2018-09-03
      • 1970-01-01
      • 2018-08-27
      相关资源
      最近更新 更多