【发布时间】:2021-04-15 15:28:47
【问题描述】:
我有一个数组,我正在从子组件调度LIKE_POST 动作。 Redux 状态已更新,但视图未更新。我正在使用Flatlist。并使用extradata。 (工作 ADD_POST 和 DELETE_POST 动作)
action.payload 返回喜欢的帖子 ID,
在减速器中:
const initialState = {
feedData: [],
loading: false,
};
...
//FETCH FEED
...
case LIKE_POST:
return {
...state,
feedData: [
...state.feedData.map((post) => {
if (post.id === action.payload) {
return {
...post,
like: {
count: 1,
isLiked: true,
},
};
}
return post;
}),
],
};
记录器正在返回 like:1 和 isLiked:true,但视图未更新。
【问题讨论】:
-
让我们看看你在这里使用的选择器(或
useSelector或connect)调用。此外,一般而言,您可能应该遵循the official recommendation to use redux toolkit 而不是手动编写简单的 redux 逻辑,因为在 RTK 减速器中您可以使用变异逻辑。在这种情况下,您的代码将变为const found = state.feedData.find(post => post.id === action.payload); if (found) { found.like = {count: 1, isLiked: true } }
标签: reactjs react-native redux react-redux