javascript - 改变 JSON 对象的 React 状态 将数组存储为值

标签 javascript arrays json reactjs react-native

如何从中推送或删除元素?

  const [addIconMenuList, setAddIconMenuList] = useState({
    "body": ["Logo", "Chest Pocket", "Tag"],
    "hood": ["Logo"],
    "sleeves": ["Cuffs"]
  })
    setAddIconMenuList((prevState) => {
      prevState[rightNavbarType].filter((item) => {
        return item !== type
      })
    })

我正在尝试这个不起作用

最佳答案

setAddIconMenuList 中,您不会从函数中返回任何内容。尝试添加这样的返回。

setAddIconMenuList((prevState) => {
  return prevState[rightNavbarType].filter((item) => {
    return item !== type
  })
})

编辑:或者您可以去掉函数体周围的括号。系统会自动返回这样的单个语句。

setAddIconMenuList((prevState) => 
  prevState[rightNavbarType].filter((item) => {
    return item !== type
  })
)
<小时/>

编辑:保留状态的其余部分

要保留先前状态的其余部分,而不仅仅是返回过滤列表,您可以尝试如下操作:

setAddIconMenuList((prevState) => {
  return {
    ...prevState,
    [rightNavbarType]: prevState[rightNavbarType].filter((item) => {
      return item !== type
    })
  }
})

...prevState 将前一个对象分成单独的部分,因此您将拥有之前状态中的所有内容,并在此对象中返回。

[rightNavbarType] 使用 ES6 计算属性语法,因此您可以访问所需的属性,例如“body”。然后将“body”设置为新的过滤数组。

关于javascript - 改变 JSON 对象的 React 状态 将数组存储为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61429818/

相关文章:

c - Qsort 对指向另一个结构的结构数组进行排序

JavaScript 忽略多维关联数组键/值 - 这里出了什么问题?

json - 将 json 响应转换为字符串并将其放入结构中

javascript - AngularJS - 具有特定 JSON 对象的自定义过滤器

javascript - 从文本框中收集数字,对它们进行排序,然后按数字将它们放回去?

javascript - 具有更多图像的 Jquery 1 id 并更改所有图像宽度/高度/位置

java - Android/Java 中的 JSON 数组迭代

javascript - 如何确定元素是否属于某种组件类型?

javascript - 通过子 DOM 元素执行 javascript 操作

c# - 无效的匿名类型成员声明符 c# linq?