【问题标题】:How to push to a map value array and use it as state in React?如何推送到地图值数组并将其用作 React 中的状态?
【发布时间】:2021-11-28 18:34:39
【问题描述】:

我在 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); 时它不会更新。

【问题讨论】:

    标签: javascript reactjs use-state


    【解决方案1】:

    请试试这个。这里我用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); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-12
      • 2019-02-26
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      • 2020-12-10
      • 2018-07-26
      • 1970-01-01
      相关资源
      最近更新 更多