首页 > 解决方案 > 页面加载后如何自动运行功能?

问题描述

在我的 componentDidMount() 中,我在我的 redux 文件中调用 actionCreator 来执行 API 调用以获取项目列表。然后将此项目列表添加到 redux 存储中,我可以通过mapStateToProps.

const mapStateToProps = state => {
    return {
        list: state.list
    };
};

所以在我的渲染()中,我有:

render() {
    const { list } = this.props;
}

现在,当页面加载时,我需要运行一个需要映射 this 的函数list

假设我有这个方法:

someFunction(list) {
    // A function that makes use of list
}

但我在哪里称呼它?当列表对我可用时,我必须调用它,因为我的函数会给我一个错误列表是undefined(如果它还不可用)。

我也不能在 render 中调用它(在 return 语句之前),因为它给了我一个错误,即 render() 必须是纯的。

我可以使用另一种生命周期方法吗?

标签: javascriptreactjsredux

解决方案


只需这样做,在 redux 商店中请确保列表的初始状态应该是[]

const mapStateToProps = state => {
    return {
        list: someFunction(state.list)
    };
};

推荐阅读