这是初始状态:

const initialState ={
  ordersWholesale:[
    {
      "id": 14,
      "name": "XTPara 650mg Tablet",
      "code": "XTP5656",
      "date": "17/10/2022",
      "accepted": null,
      "wholesale": "shakthi",
      "quantity": "5"
    },
    {
      "id": 15,
      "name": "Dolo 650 Tablet",
      "code": "DOL1213",
      "date": "17/10/2022",
      "accepted": false,
      "wholesale": "shakthi",
      "quantity": "5"
    },
  ],
}

这是切片机

extraReducer: {
  [asyncOrderAccept.fulfilled]: (state, { payload }) => {

  }
}

如何使用为14的有效负载值仅更改值orderWholesale[0]['accepted']: true

推荐答案

如果我正确理解了您的问题,即操作有效负载是您希望切换为真的ordersWholesale个状态元素中的id个,那么您将需要搜索数组以找到id的正确元素,然后更新that元素.请记住,state 106ordersWholesale数组,如果没有找到匹配项,则Array.prototype.find可能返回UNDEFINED.

extraReducer: {
  [asyncOrderAccept.fulfilled]: (state, { payload }) => {
    const el = state.find(order => order.id === payload);
    if (el) {
      el.accepted: true,
    }
  },
}

如果您可以使用可选链接,这可能也适用于您.

extraReducer: {
  [asyncOrderAccept.fulfilled]: (state, { payload }) => {
    state.find(order => order.id === payload)?.accepted = true;
  },
}

Reactjs相关问答推荐

如何使用json将购物车数组传递到后台API

如何避免react 使用ESLINTreact 挂钩/穷举-deps进行第一次呈现

REACT路由DOM根据参数呈现不同的路由

如何获取用户在 GooglePlacesAutocomplete 中输入的文本?

如何清除过滤器搜索的状态

如何使用 App Router 和服务器组件在 Next.js 13 中实现分页

Mui 在 TextField 标签上添加工具提示显示两个工具提示框

如何在 React 过滤器中包含价格过滤器逻辑?

Redux Toolkit 配置,是否适用于全栈应用程序?

位于组件material-ui中的TextField中的 map 功能不起作用

如何在react 中正确销毁上下文?

从其他组件切换 FieldSet

如何从 React Redux store 中删除特定项目?

不能在我的代码中使用 .给我一个警告!有人知道解决方案吗?

react-markdown 不渲染 Markdown

如何使用react 路由将 url 参数限制为一组特定的值?

react-markdown 不渲染 Markdown

哪个 PrivateRouter 实现更好:高阶组件还是替换?

如何在组件文件夹内的react 组件文件中导入外部css文件?

react / firebase 基地.如何在我的项目中保存更新的数据?