首页 > React 中,如果state中有一个较深层的值改变了,怎么去setState?

React 中,如果state中有一个较深层的值改变了,怎么去setState?

初次使用react,发现一个小小的疑问。
如果我有一个组件,其state是个极其复杂的机构,比如
{ a:1,b:2,c:{ d:[ {e:1,b:2},{e:2,b:4}]}}

现在,我的d数组的第二个成员的e由2变为3,那么我怎么设置setState.
我当下的做法是:
step 1.克隆一个state;
step 2.强克隆的state中对应位置的e,改为3
step 3.调用setState(克隆的新的state )

问题:请问码友们,有没有更好的办法


可以直接使用react的immutability helpers

var update = require('react-addons-update');
var newData = update(this.state, {c: {d: {1: {e: {$set: 3}}}}});

this.setState(newData)

1.https://github.com/paularmstr...
2.https://github.com/facebook/i...

基本只有这两条路。


不用这么复杂,直接
1: this.state.c.d[2].e=3;
2: this.setState();

【热门文章】
【热门文章】