为什么我的componentWillMount被调用?

时间:2019-10-04 09:50:32

标签: javascript reactjs

我的componentWillMount被打了,但我不明白为什么要修复它。 我的代码如下:

componentWillMount(): void {
        apiClient
            .get("module/menu/top/get")
            .then(response => {
                ReduxService.dispatch(setMenus(response.data));
            })
            .catch(() => {
                message.error("Het is niet gelukt de menu items op te halen! Herlaad de pagina.");
            });
    };

    getFooterItems = () => {
        apiClient
            .get("module/menu/footer/get")
            .then(response => {
                ReduxService.dispatch(setMenus(response.data));
            })
            .catch(() => {
                message.error("Het is niet gelukt de menu items op te halen! Herlaad de pagina.")
            })
    };

这是我的渲染:

<Tabs type="card" onTabClick={this.getFooterItems}>

所以我希望我的componentWillMount像它应该的那样被调用。 但是,当我使用onTabClick在选项卡(Ant.Design)之间切换时,我想使用this.getFooterItems函数,而不是componentWillMount

编辑:我的两个固定菜单都已修复

3 个答案:

答案 0 :(得分:0)

componentWillMount已过时,您应该将componentDidMount用于api调用。

componentWillMount是反应生命周期方法,在组件渲染时会自动调用1次。这不是自定义功能。 有关生命周期methods

的更多信息

如果要执行该代码,例如单击某个按钮,请将代码放入函数中,然后在该按钮的onClick上调用该函数。

希望有帮助!

答案 1 :(得分:0)

componentWillMount 在呈现组件之前执行。如果要在显示组件之前运行任何执行,请使用 componentWillMount 。 如果要在选项卡上单击以执行此操作,请将此代码放入 getFooterItems 方法中。

答案 2 :(得分:0)

componentWillMount 是已弃用的生命周期方法。在最新版本的react中,它可以作为 UNSAFE_componentWillMount 使用。如果要在组件呈现 componentDidMount 时调用某些API,则是您要使用的生命周期方法。

如果要在切换选项卡时调用方法,则应为其使用适当的处理程序

希望有帮助