如何在 switch 语句(redux reducer)中更改数组的 id?

所以我有一系列待办事项。当我删除一个待办事项时,我试图更改其余项目的 ID,例如 todo[1] 的 ID 也为 1。如果我有 3 个项目并将第一个项目删除为第二个项目,则情况并非如此item 的 id 为 2,即使它应该是 1。


这是我目前所拥有的-


case REMOVE_TODO: {

      const newList = state.todos.filter(item => item.id !== action.id);

      for (let i = 0, newId = 0; i > newList.length; i++, newId++) {

        newList[i].id = newId;

        console.log(newList[i].id); //nothing gets logged

      }

      return {

      ...state,

      todos: newList

      };

    }

没有正确更改项目 id 没有任何反应,即使我控制台记录我刚刚更改的内容的 id,也没有任何反应,也没有任何变化。


萧十郎
浏览 144回答 2
2回答

守着星空守着你

for 循环中的迭代器看起来有问题。i > newList.length应该是i < newList.length。您也可以使用 map 循环遍历 newList 并获得一组较新的数组。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript