不可变值的问题
老师您好
代码:
increase(){
this.setState({
count: this.state.count + 1
})
}视频截图

不可变值是不要直接修改state,我的问题是count: this.state.count + 1这里不还是直接修改了state的count值吗?这里是不是也有问题?
我问AI,说法也是这种写法不遵循不可变值的规范

6
收起
正在回答
1回答
同学你好,我认为同学理解这一块有一个偏差,不可变值是指不能直接操作state比如说直接将this.state.count++那么这句就是直接更改this中的state的count这里是不符合规范的(注意这里是指规范)那么我们要改变则需要使用到setState这个方法这样是符合规范的。


那么对于同学的这个问题进行回答,它改变了值之后将新的值(临时的新的结果)赋值给到了count,这么做是没有问题的。
这里包含的知识点在于react中它的更新机制(规定)还有更新状态如直接使用state进行更新它不合规。
*这里要注意非要较真的话,如果说我们非要用this.state.count去进行修改是不是也能达到目的,其实如视频中老师测试的例子中发现也是可以达到目的,但会有问题,其实也是一个规范的问题,也许有一天这个规范没有了,直接可以更改了也不是没有可能。那么这里同学只要知道react的更新机制去制约了这个行为即可。
祝学员学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星