我正在使用react.js
,redux
和redux-modal
。我希望在显示模态时执行代码。
当我将代码放入componentWillMount
时,它只是在第一次执行。
componentWillMount() {
// Just execute one time
// Do something
}
redux-modal
使用show
状态变量来显示或隐藏模态,因此我使用以下代码来处理显示事件:
componentWillReceiveProps(nextProps) {
// When modal is shown
if (!this.props.show && nextProps.show) {
// Do something
}
}
除了第一次安装模态外,它的效果很好。
现在我一起使用componentWillMount
和componentWillReceiveProps
来处理模态节目事件。
有没有更好的解决方案来处理模态显示事件?
答案 0 :(得分:1)
您可以简单地将代码放在渲染函数中,如下所示:
render() {
{(this.props.show) ? <MyModalComponent/> : null}
... // other components to render
}
如果您使用componentDidMount()
触发API调用,那么使用上面的代码,您的流程将是:
this.props.show == false
render()
,组件将在没有模态的情况下呈现componentDidMount()
正在运行,会触发API调用show
设置为true this.props.show == true
render()
正在运行,组件将以模态componentDidMount()
未运行,因为这是第二次渲染)