如何在Redux嵌套列表中更新(添加和删除)项目:Redux,React

时间:2020-06-22 06:38:15

标签: javascript arrays reactjs redux state

这是我的初始状态:

Fruits: {
    34: {
        FruitsID: 34,
        FruitsList:{apple, pineapple, banana}
        }
}

在这里,我想添加诸如“桃子”或“梨子”之类的水果,并删除“苹果”和“香蕉”。 我的“添加水果”减速器返回了我在下面写的内容,但是由于id的原因,这似乎不起作用。但是,我确实需要使用id,因为会有多个水果列表,而不仅仅是一个。 例如:水果:{23:{...},3980:{...},129:{...}}

Fruits: {
          [action.id]: {
            …state.Fruits[action.id],
            FruitsID: action.id,
            FruitsList: {
              ...state.Fruits[action.id].FruitsList.push(action.fruit),
            },
          },
}

我尝试阅读几篇相关文章,但找不到适合我的情况的文章。

  • 如果我这样做(下),则action.fruit下有语法错误,说它应该为','?
Fruits: {
          [action.id]: {
            …state.Fruits[action.id],
            FruitsID: action.id,
            FruitsList: {
              ...state.Fruits[action.id].FruitsList,
              action.fruit
            },
          },
}

1 个答案:

答案 0 :(得分:0)

我对此进行了测试,并遇到两个问题:

Sys.which("python")
                                                                 python 
"C:\\Users\\user\\AppData\\Local\\R-MINI~1\\envs\\R-RETI~1\\python.exe"

1-在此行中…state.Fruits [action.id],三个点似乎不是应该的点字符,请再次键入或将其复制为“ ...”!

2-将此行“ action.fruit”转换为以下内容:“ fruit:action.fruit” 所以当前代码是这样的:

Fruits: {
          [action.id]: {
            …state.Fruits[action.id],
            FruitsID: action.id,
            FruitsList: {
              ...state.Fruits[action.id].FruitsList,
              action.fruit
            },
          },
}