我正在尝试设置一个取消按钮,该按钮会将我的所有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
});
}
看来我的状态没有更新。我相信这是由于属性的嵌套更改。我可以找到一个对象嵌套的示例,但找不到如何对一组对象进行嵌套。谢谢您的所有帮助