程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何删除 Redux Reducer 中的嵌套数组元素?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何删除 Redux Reducer 中的嵌套数组元素??

开发过程中遇到如何删除 Redux Reducer 中的嵌套数组元素?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何删除 Redux Reducer 中的嵌套数组元素?的解决方法建议,希望对你解决如何删除 Redux Reducer 中的嵌套数组元素?有所启发或帮助;

几个小时以来我一直在努力解决这个问题。

我正在尝试删除对象中数组的嵌套元素。它必须在 reducer 中一成不变地完成,这使得它变得棘手。

这里是对象:

questions {
    0:
    answers: [{…}]
    createdAt: "2021-04-28T01:37:21.017Z"
    creator: "607f6ab0ee09c"
    likes: []
    name: "Firstname Lastname"
}

我只想删除 answers 数组的 1 个元素。问题是我不知道(问题的)确切元素,直到我通过“创建者”代码搜索,然后我可以通过键 # 删除答案元素。

我尝试使用地图和过滤器,但在 3 层深的情况下,该逻辑从未奏效。我也愿意使用 Immutable-Js。

非常感谢,对于看似简单的事情来说,这是一个令人困惑的问题。

编辑: 我意识到我可以在动作创建器中确定顶级问题对象的键并将其发送到减速器。 所以我需要知道如何做的就是删除嵌套在另一个对象中的对象中的数组元素。

感谢您的帮助!

解决方法

首先使用 questions ES6 运算符克隆 ... 对象

const clonedQuestion = {...questions}

现在从答案数组中删除元素

const indexOfElementToRemove = clonedQuestion.answers.findIndex(element => element.creator === clonedQuestion.creator);
if(indexOfElementToRemove >= 0) {
  clonedQuestion.answers.splice(indexOfElementToRemove,1)
}
,

您还可以查看官方的 redux 工具包,它允许您在他们的 createReducer- 或 createSlice- 创建的减速器中使用这样的变异逻辑:

delete state.questions.answers[5]

请参阅此教程页面,该页面简要概述了我们认为的“现代 Redux”:https://redux.js.org/tutorials/fundamentals/part-8-modern-redux

如果这不是您现在想要做的事情(但请记住,现代 redux 和旧版 redux 可以在应用程序中混合使用),请查看 immer 而不是 immutable,因为 { {1}} 在这一点上基本上已经死了,而 immutable 的开发者体验要好得多。

大佬总结

以上是大佬教程为你收集整理的如何删除 Redux Reducer 中的嵌套数组元素?全部内容,希望文章能够帮你解决如何删除 Redux Reducer 中的嵌套数组元素?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。