如何让antd的modal组件在显示的时候只执行一次方法

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

阅读 594
评论 2019-08-20 提问
    2 个回答
    ineo6
    • 266

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

    {this.state.visible && (
      <TestModal
        visible={this.state.visible}
        handleCancel={this.handleCancel}
      />
    )}
    评论 赞赏 2019-08-20

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

      或者 用 hooks useEffect

      评论 赞赏 2019-08-21
        撰写回答

        登录后参与交流、获取后续更新提醒