初次使用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,发现一个小小的疑问。
如果我有一个组件,其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 )
问题:请问码友们,有没有更好的办法
let paginationConfig = this.state.paginationConfig //选到上一级
paginationConfig.activePage = 3 //改变要设置的值
this.setState({paginationConfig},()=>{
console.log(this.state.paginationConfig) //重新查看,设置成功
}); //更新state数据
不用这么复杂,直接
1: this.state.c.d[2].e=3;
2: this.setState({});
这样速度最快。很多人会写this.setState(this.state),这样react就把你的所有属性又处理一遍,略慢
6 回答2.2k 阅读
3 回答2.1k 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
1.https://github.com/paularmstr...
2.https://github.com/facebook/i...
基本只有这两条路。