首页 > 解决方案 > 尽管 redux 中的状态更改和组件的 props 更改,但页面也不会重新渲染

问题描述

谁能解释如何在 redux 中更新状态?特别是数组。

 if(action.type === 'ADD_POST')
    {
      state.posts.push(action.obj)
      let newPosts = state.posts
      console.log(newPosts)
      return {
        ...state,
        posts: newPosts
      }

    }

标签: javascriptreactjsredux

解决方案


要将帖子添加到帖子数组中,它应该是

if (action.type === "ADD_POST") { 
  return [...state, action.obj]
}

这将添加一个元素而不会使用解构赋值改变状态

顺便说一句:在https://redux-toolkit.js.org/上抢购一下,这是编写 redux 的新推荐方式。它具有内置的不变性,这意味着您可以这样做

state.push(action.payload)

推荐阅读