reactjs - redux:在异步获取和文档创建后重新渲染组件
问题描述
我有一个组件componentDidMount
将执行异步 API 数据库获取。
在同一组件上,用户可以将项目添加到集合中。不幸的是,即使新文档已添加到集合中,组件也不会自动重新呈现。如何在显示新文档的情况下调用另一个渲染?
解决方案
如果您的集合是一个数组,则在创建项目时,您应该使用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
将知道状态已更改,并且您的组件也将自动更新。