javascript - 如何在嵌套对象中设置状态

标签 javascript reactjs react-hooks

想知道是否有一种方法可以使用 useState() 更新 React 中的嵌套对象状态

import React, {useState} from 'react'

const MyComp = () => {

  const [colors, setColors] = useState({colorA: 'RED', colorB: 'PURPLE'});

  return (
    <div>
       <span>{colors.colorB}</span>
       <button onClick={() => setColors({...colors, colors: { colorB: 'WHITE'}})}>CLICK ME</button>
    </div>
  )
}


export default MyComp;

我正在考虑使用 useReducer() 但我读到它通常用于更复杂的状态,也许只使用 useState() 就可以解决这种情况

有什么想法吗?

提前致谢

最佳答案

colors 已经是整个对象,您不需要声明为属性。

展开原始对象并覆盖colorB

() => setColors({...colors, colorB: 'WHITE'}) 

关于javascript - 如何在嵌套对象中设置状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59156052/

相关文章:

javascript - 如何扩展es6子类函数参数?

javascript - Span 元素不运行来自 jQuery 的动画

reactjs - 在 react native ScrollView 中滚动到给定像素数的X,Y方向

css - webpack 服务器不加载 css 样式表

javascript - React Hooks useState 显示错误

javascript - React useEffect 导致 : Can't perform a React state update on an unmounted component

reactjs - 使用jest 模拟react-router-dom 钩子(Hook)不起作用

javascript - 如何从选项列表中获取一项

Javascript 循环 json 获取值并在满足条件时应用

node.js - 如何解决: "TypeError: Cannot read property ' map' of undefined"