设置嵌套对象数组的状态

时间:2019-05-21 16:04:33

标签: reactjs typescript

我正在尝试设置一个取消按钮,该按钮会将我的所有ref对象还原为它们的defaultValue。此属性嵌套在item.state.defaultValue中的数组的每个元素内。

我正在尝试以下代码:

我的裁判状态:

refs: Array<EditableText | null>;

可编辑文本组件

<EditableText
   disabled={!this.state.editingDesc}
   multiline={true}
   maxLines={10}
   defaultValue={description}
   ref={input =>
     (this.state.refs[index + 1] = input)
   }
/>
public handleCancelBtn = () => {
    const oldRefs = [...this.state.refs];
    const newRefs = oldRefs.map(ref => {
      if (ref != null) {
        const newRef = Object.assign({}, ref);
        const newState = Object.assign({}, ref.state, {
          lastValue: ref.props.defaultValue,
          value: ref.props.defaultValue
        });
        newRef.state = newState;
        return newRef;
      }
      return null;
    });

    this.setState({
      editingDesc: false,
      refs: newRefs
    });
  }

看来我的状态没有更新。我相信这是由于属性的嵌套更改。我可以找到一个对象嵌套的示例,但找不到如何对一组对象进行嵌套。谢谢您的所有帮助

0 个答案:

没有答案