如何推送到映射值数组并将其用作 React 中的状态?

How to push to a map value array and use it as state in React?

我在 React 中有以下状态:

const [tasksMap, setTasksMap] = useState(new Map());

创建以下地图:

tasks.forEach((task) => {
  const key = `${week.year}-${week.weekNo}`;

  if (!tasksMap.has(key)) {
    tasksMap.set(key, []);
  }
  tasksMap.get(key).push(task);
});

如何将地图 tasksMap 设置为 React 状态?

setTasksMap(tasksMap.set(key, [])); 有效但有一个空数组作为值,当我 运行 tasksMap.get(key).push(task);.

时它不会更新

请试试这个。这里我用separate variable来存储数据,最后把那个变量设置到state

let mapObj = new Map();

tasks.forEach((task) => {
  const key = `${week.year}-${week.weekNo}`;

  if (!mapObj.has(key)) {
    mapObj.set(key, []);
  }
  mapObj.get(key).push(task);
});

setTasksMap(mapObj);