0

现在,我有一个页面,页面上有一个按钮和一个基于antd modal封装的弹窗组件,当点击按钮的时候弹窗会显示。我希望在弹窗显示的时候执行一次某些方法来初始化一些数据。但是我发现如果把方法放在弹窗组件的componentWillMount里,那么方法只会在整个页面初始化的时候执行一次。如果把方法放在弹窗组件的render里,那么只要弹窗里的内容稍有变化,方法都会被执行,但是我只希望方法在弹窗显示的时候执行一次。请问要怎么解决。

凡沸 222
2019-08-20 提问
2 个回答
0

已采纳

TestModal好比是封装过的模态框组件,我们在visible等于true的时候显示,等于false的时候销毁,就可以再次触发componentDidMountcomponentWillMount

{this.state.visible && (
  <TestModal
    visible={this.state.visible}
    handleCancel={this.handleCancel}
  />
)}
0

componentDidUpdate componentDidMount getDerivedStateFromProps 获取数据 或者更新状态

或者 用 hooks useEffect

撰写答案

推广链接