反应中嵌套数组中的setState
Posted
技术标签:
【中文标题】反应中嵌套数组中的setState【英文标题】:setState in nested arrays in react 【发布时间】:2019-06-02 10:11:57 【问题描述】:我有一个 React 状态对象,里面有两个数组。
this.state =
data2:
nodes: [id: 'input'],
links: []
,
;
我想在一些用户操作后向这些数组添加新值,但我还没有找到正确的方法。到目前为止,我已经尝试过这样的事情:
this.setState([...this.state.data2, nodes: [...this.state.nodes, id: 'input2']]);
关于我应该如何实现它的任何想法?
【问题讨论】:
【参考方案1】:我会推荐这样的东西
this.state =
data2:
nodes: [],
links: []
,
;
当您设置状态时,您不必在 setState function
中使用 this 关键字
this.setState( data2: nodes: [id:'input1',id:'input2'] )
你也可以在节点数组中推送对象
let temp = data2
temp.nodes.push(id:'input3')
this.setState( data2:temp )
【讨论】:
这也可以工作.. this.setState( data2: Object.assign(, this.state.data2, nodes: [...this.state.data2.nodes, id: 'input1', id: 'input2'] ) )【参考方案2】:这可以通过两种简单的方式完成。您使用传播运算符所做的一个。像这样的,
this.setState(data2: ...this.state.data2, nodes: [id: "input1"] );
或者你可以像这样使用[Object.assign()][1]
,
this.setState(data2: Object.assign(, this.state.data2, nodes: [id: "input1"]));
【讨论】:
以上是关于反应中嵌套数组中的setState的主要内容,如果未能解决你的问题,请参考以下文章
每半秒反应一次原生 SetState 数组 使 App 挂起大数据