繁体   English   中英

我如何使用 setState 更新数组内的对象

[英]How do i use setState to update an object inside an array

这是我的状态对象的结构

this.state = {
    navTabs: [
       {
         name: "Overview",
         isActive: true,
         clickHandler: (ev) => {
           this.setState(...);
         }
       },
       {
         name: "Projects",
         isActive: false,
         clickHandler: (ev) => {
           this.setState(...);
         }
       }
    ]
}

当用户单击导航选项卡时,我想更改每个对象的isActive值。 请问我该怎么做?

navTab html 元素上的onClick处理程序中,您需要调用this.setState({ isActive: <value here> })

  1. 首先保持数据干净,编写单个处理程序函数:

     navTabs: [ { name: "Overview", isActive: true }, { name: "Projects", isActive: false } ]
  2. 根据要求编写您的clickHandler 我正在下面的代码中切换

    clickHandler = ()=>{ const updatedState ==this.state.navTabs.map(navTab=>({...navTab,isActive:!navTab.isActive})) this.setState({ navTabs:updatedState }) }
  3. 试一试你的isActive会得到切换器,但最终它取决于你的要求。 如果您将navTabs作为道具传递给子组件并单击特定的 navTab,则逻辑和代码将有所不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM