其他API
setState()
改变组件state
的惟一方法,这是一个异步方法,也就是在调用的时候不会立即执行。所以该方法是如下定义的:
setState(updater[, callback])
updater
参数即是一个对象,也可以是一个函数:
作为对象时:this.setState({state})
,常与Object.assgin()
配合使用,也可以与ES2018的 ...
表达式一起使用.
作为函数时:(prevState, props) => stateChange
,但是必须返回一个Object
,例如:
this.setState((prevState, props) => {
return {counter: prevState.counter + props.step};
});
callback
是一个回调函数,当setState
方法执行结束后的回调,详细内容在第三章节有说明。
forceUpdate()
component.forceUpdate(callback)
默认情况下,组件的渲然只依赖state
和props
,有时候需要依赖其他数据的时候,比如浏览的滚动条的位置数据等时,就可以使用此方法。
执行此方法时,会触发render()
方法,但是不会执行shouldComponentUpdate()
方法。
执行此方法时,会触发其组件子组件的所有生命周期。
尽量避免使用此方法。