首页 > 解决方案 > redux:在异步获取和文档创建后重新渲染组件

问题描述

我有一个组件componentDidMount将执行异步 API 数据库获取。

在同一组件上,用户可以将项目添加到集合中。不幸的是,即使新文档已添加到集合中,组件也不会自动重新呈现。如何在显示新文档的情况下调用另一个渲染?

标签: reactjsreduxstate

解决方案


如果您的集合是一个数组,则在创建项目时,您应该使用concat方法返回一个新数组,而不是push通过索引直接访问该数组。

请参阅此代码:

const myReducer = (state = initState, action) => {
    switch (action.type) {
        case 'FETCH_SUCCESSFUL': return action.data

        case 'NEW_ITEM': return [].concat(state, [action.newItem])

    }
}

当您返回一个新数组时,redux将知道状态已更改,并且您的组件也将自动更新。


推荐阅读