如何更新 React JS 状态功能组件

穆拉德·赫加齐

例如,我如何更改某个状态中的特定对象,我有这样的数据

const colors= [
      {
        id: 1,
        name: "red",
      },
      {
        id: 1,
        name: "green",
      },
      {
        id: 2,
        name: "blue",
      },
    ];

const storage = [{
id:2,
name:"64 GB"
},
{
id:2,
name:"128 GB"
]

状态值应该是这样的 [{id:1, name:'red"}, {id:2,name:"128GB"}]

有什么方法可以仅根据 id 更新状态?例如:我需要循环数据,如果state.id === id它会更新该特定对象。所以在我们的例子中,我需要更新状态,[{id:1, name:'green"}, {id:2,name:"128GB"}]如果state.id === 1

提前致谢

马吉德·穆罕默迪

您可以使用浅拷贝更新对象的数组状态并更改值,如下所示:

import * as React from "react";

export default function App() {
  const [colors, setColors] = React.useState([
    {
      id: 1,
      name: "red"
    },
    {
      id: 1,
      name: "green"
    },
    {
      id: 2,
      name: "blue"
    }
  ]);
  const updateState = (id, name) => {
    let copy = [...colors];
    let color = copy.filter((x) => x.id == id)[0];
    if (!color) return;
    let index = copy.indexOf(color);
    color.name = name;
    copy[index] = color;
    setColors(copy);
  };
  return (
    <div className="App">
      {colors.map((color, index) => (
        <>
          <p>
            {color.id} : {color.name}
          </p>
        </>
      ))}
      <button
        onClick={() => {
          updateState(2, "yellow");
        }}
      >
        update
      </button>
    </div>
  );
}

下面是示例代码的可执行形式:https : //codesandbox.io/s/mutable-wildflower-n10ys?file=/src/App.js

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

React JS在功能组件中设置状态

React 功能组件不更新状态

如何在 React 功能组件中立即更新状态?

React:如何在功能组件中强制状态更新?

如何从子功能组件更新 React 中的父状态?

如何避免React功能组件过时的状态

React JS:子组件的状态更改更新父组件

将有状态的React组件转换为无状态的功能组件:如何实现“ componentDidMount”类型的功能?

React、Enzyme:测试状态更新功能组件

我们如何在React JS中为无状态功能组件编写点击处理程序

如何在React JS中更新状态

React-如何确定组件是否为无状态/功能?

如何在Typescript中编写React无状态功能组件?

React:如何在功能组件中创建状态相关函数?

如何在React状态下更新单个属性(功能组件)

如何重用该功能来更新React组件状态的不同部分?

使用promise Hooks React JS跟踪组件外部状态的更新

React JS组件不会在状态更改时更新

react:如何从其父级更改子组件(功能组件,而不是类组件)的状态?

React js 状态更新

如何从 React 中的组件更新状态?

如何更新我的React组件状态?

如何在React JS中更新功能组件setState中整数数组的特定索引

警告:无法在已卸载的组件上执行React状态更新。在功能组件中

如何在React Native的无状态功能组件中扩展Native组件的props TypeScript接口?

无状态功能组件-React

React Native - 无法对未安装的组件执行 React 状态更新,使用效果清理功能

如何在react js的功能组件中创建ref?

如何在react js中触发组件水平滚动的功能