React.js中显示了模态时如何执行某些操作
How to do something when modal is shown in React.js?
我使用的是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
}
}
除了第一次安装modal外,它运行良好。
现在我将使用componentWillMount
和componentWillReceiveProps
来处理模态显示事件。
有没有更好的解决方案来处理模态表演事件
您可以简单地将代码放入渲染函数中,如下所示:
render() {
{(this.props.show) ? <MyModalComponent/> : null}
... // other components to render
}
如果您使用componentDidMount()
激发API调用,那么使用上面的代码,您的流将是:
- 第一次渲染:
this.props.show == false
- 运行
render()
时,组件将在没有模态的情况下进行渲染 componentDidMount()
正在运行,它将触发API调用- API调用的结果更新存储,将
show
设置为true - 存储更新触发新的渲染周期
- 下一个渲染周期:
this.props.show == true
render()
运行时,组件将以模态呈现- (
componentDidMount()
未运行,因为这是第二次渲染)
相关文章:
- 单击元素两次后执行操作
- 如何在mvc3中执行操作而不更改当前页面
- jQuery onunload在按下按钮时执行操作
- 如果DOM发生更改,您将如何执行操作
- 在执行所有回调函数后执行操作
- JavaScript 对输入框执行操作
- 如何根据各种复选框状态执行操作
- 对页面重新加载 Jquery 执行操作
- jQuery如果大于则执行操作,但只执行一次
- ngStorage是否异步执行操作
- 如何逐一执行操作
- 只有当输入文本是example.com这样的域时才执行操作
- Javascript数学不起作用,更好的方式来执行操作
- Qubit在控制台中执行操作
- 停止setInterval,直到未执行操作
- 我如何使用javascript对音频标记执行操作
- JS 函数将对象作为输入,并返回一个对象,该对象对作为参数传递的对象执行操作
- 单击时执行操作多个具有相同类的 href
- 在 JavaScript 中传递指定秒数后如何执行操作
- 如何在对用户控件执行操作后调用 Web 服务