【问题标题】:Redux not update nasted stateRedux 不更新嵌套状态
【发布时间】:2021-04-15 15:28:47
【问题描述】:

我有一个数组,我正在从子组件调度LIKE_POST 动作。 Redux 状态已更新,但视图未更新。我正在使用Flatlist。并使用extradata。 (工作 ADD_POSTDELETE_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:1isLiked:true,但视图未更新。

【问题讨论】:

  • 让我们看看你在这里使用的选择器(或useSelectorconnect)调用。此外,一般而言,您可能应该遵循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


【解决方案1】:

我解决了这个问题。

我在feedData 的组件中使用useState 挂钩。当我删除 useState 并直接使用存储的数据时。成功了。

const feedData = useSelector(state=>state.feed.feedData)
const [data, setData] = useState(feedData) => THIS IS THE MISTAKE

【讨论】:

  • 恭喜!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-30
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 2020-11-17
  • 1970-01-01
  • 2019-01-28
相关资源
最近更新 更多