在项目中只写this.setState({}),大括号里面什么都不填,会更新组件(或者说调用了一次render)。
比如我用了一个state外部的变量num,在某一个按钮的点击事件内num++,之后this.setState({}),这样num改变后的值会更新到页面中;
如果不this.setState({}),页面不会更新。
这是什么原理?有什么诟病?
在项目中只写this.setState({}),大括号里面什么都不填,会更新组件(或者说调用了一次render)。
比如我用了一个state外部的变量num,在某一个按钮的点击事件内num++,之后this.setState({}),这样num改变后的值会更新到页面中;
如果不this.setState({}),页面不会更新。
这是什么原理?有什么诟病?
React中状态的变化,要你主动告诉React的。告诉的方式就是通过调用this.setState。即使传入的是{},也是会重新调用render方法的,如果你想阻止不必要的render,可以在shouldComponentUpdate中判断状态,在某些条件下返回false就不会重新render。
传入{},表示你把你一个空的对象合并到原有的state上了,虽然本质上没做什么,但只要调用this.setState,React就认为你修改了状态。
1 回答1.8k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答1.3k 阅读
1 回答1.7k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
2 回答871 阅读✓ 已解决
setState:这个API设计到底怎么样
可以参考一下这篇文章.