如何在 Redux 中存储以数组为值的对象数组?

How do I store an array of objects that have arrays as value in Redux?

如何在 Redux 中存储以数组作为值的对象数组,其中值是项目数组,键是名称之类的字符串。我必须存储类似的东西:

[{
    name: 'ron',
    team: ['josh','brian'],
  },
{
   name: 'marie',
  team: ['ann', 'kevin']

    }
]

这是我只有名字的代码:

import {v4 as uuid} from 'uuid';
const initalState = [
  {
    id: uuid(),
    name: ''
  }
];


const trainerReducer = (state = initalState, action) => {
  const {type, payload} = action;

  switch (type) {
    case 'CREATE_TRAINER':
      console.log('payload', payload);
      return [...state, {id: uuid(), name: payload.name}];
   

    default:
      return state;
  }
};

export default trainerReducer;

此外,任何关于如何在 redux 中添加、更新、删除它的文档都将不胜感激。

请试试这个: 创建 var 或 const 数组。

const arrayData = [{
    name: 'ron',
    team: ['josh','brian'],
  },
{
   name: 'marie',
  team: ['ann', 'kevin']

    }
];

然后将此数组发送到相关方法进行操作。

    import {v4 as uuid} from 'uuid';
    const initalState = [
      {
        id: uuid(),
        name: ''
      }
    ];
    
    
    const trainerReducer = (state = initalState, action) => {
      const {type, payload} = action;
      const arrayData = payload.arrayData;

      switch (type) {
        case 'CREATE_TRAINER':
          console.log('payload', payload);
          return [...state,[...arrayData], {id: uuid(), name: payload.name}];
       
...
...
...

当你创建一个教练时,你通过了团队。

const trainerReducer = (state = initalState, action) => {
  const { type, payload } = action;

  switch (type) {
    case "CREATE_TRAINER":
      console.log("payload", payload);
      return [
        ...state,
        { id: uuid(), name: payload.name, team: payload.team ?? [] },
      ];

    case "ADD_TEAM":
      return state.map((trainer) =>
        trainer.id === payload.id ? { ...trainer, ...payload.team } : trainer
      );

    default:
      return state;
  }
};