如果在块中调度同步操作,它下面的行会注意到变化吗?
// In a compoent connected to the reducer
class someComponent extends Component {
const interuptOrNot = () => {
this.props.dispatchChangeSomeStateAction({ payload: 2 })
}
render() {
this.interuptOrNot()
console.log(this.props.someState)
return(<SomeComponent>)
}
}
如果reducer的原始props值等于1,那么记录器的输出信息是什么。1还是2?或者,第一个渲染调用没有输出,但它将输出2,用于具有最新状态的重新渲染。
我知道在render func中发送操作是个坏主意,但如果我调度一些操作来更改组件使用的reducer的状态,会发生什么?
如果dispatchChangeSomeStateAction将一个sync-redux操作分派给reducer,并且我在render函数中调用该函数,该怎么办?当前渲染是否会因为状态过期而中止?
console.log(this.props.someState)
将返回1。
当前渲染函数将使用当前道具值运行。
当组件的状态发生更改时,它将重新渲染。
使用componentWillReceiveProps
跟踪新道具/更新道具。
道具是不可变的,如果有什么东西更新了它们,您将跟踪componentWillReceiveProps
中的更改,并将更新传递给该组件的状态。