更新Redux中相应状态项的状态

ego6inou  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(153)

我仍然是React/Redux的初学者。这就是我想做的:
我有一个文档状态,其中包含用户可能拥有的文档列表

hasDocuments: (
  state,
  action: PayloadAction<{ documents: any }>,
) => {
  state.hasDocuments = true;
  state.documents = { ...action.payload };
}

updateDocumentStatus: (
  state,
  action: PayloadAction<{ id: any; status: any }>,
) => {
  //want to update status of each document here. Not sure how to this
},

我也在监听事件,这样我就可以像这样更新我的状态:

case 'documentViewed': {
          dispatch(
            updateDocumentStatus({
              id: data.id,
              status: { hasViewed: data.hasViewed },
            }),
          );
          break;
        }

然而,我不确定如何从state.documents获取相应的id,并在我的updateDocumentStatus方法中更新相同的id。

mzmfm0qo

mzmfm0qo1#

我不知道你的documents对象的形状,但根据我的理解,你只需要使用id作为关键字来“改变”documents对象。
我假设您想将状态添加到文档中,但是您可以根据documents的外观添加任何值。

updateDocumentStatus: (
  state,
  action: PayloadAction<{ id: any; status: any }>,
) => {
  // RTK allows you to "mutate" the state thanks to the Immer library
  state.documents[action.payload.id] = { ...state.documents[action.payload.id], status: action.payload.status };
},

相关问题