javascript - react : set all objects keys in state to false

标签 javascript reactjs

我的 React 组件的状态为:

this.state={
            items: [
                {
                    label: '1 Some text',
                    active: true
                },
                {
                    label: '2 Some text',
                    active: false
                },
                {
                    label: '3 Some text',
                    active: false
                },
                {
                    label: '4 Some text',
                    active: false
                }
            ]
        }

我有一个菜单,当我点击它时,我想改变状态:

this.state.items.map(item => {
                return <li onClick={}>{item.label}</li>
            })

如果我单击任何菜单项,我希望将其设为 active: true,并将所有其他菜单项设置为 active: false

最佳答案

更新:

 manuOnClick=(e, label)=>{
     let newState = this.state.items.map(item=>{
             if(label === item.label)
             {   
                 let newItem={
                     label:label,
                     active:true
                 }
                 return newItem   
             }
             else
             {
                 let newItem={
                     label:item.label,
                     active:false
                 }
                 return newItem 
             }
     })

     this.setState({
          items:newState
     })
}

抱歉,

onClick={(e,item.label)=>this.manuOnClick(e,item.label)

不对,应该是

onClick={(e)=>this.manuOnClick(e,item.label)

试试这个:

manuOnClick=(e, label)=>{
     let newState = this.state.items.map(item=>{
             if(label === item.label)
             {   
                 let newItem={
                     label:label,
                     active:true
                 }
                 return newItem   
             }
             else
             {
                 return item
             }
     })

     this.setState({
          items:newState
     })
}



this.state.items.map(item => {
            return <li onClick={(e)=>this.manuOnClick(e,item.label)}>{item.label}</li>
        })

关于javascript - react : set all objects keys in state to false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60878543/

相关文章:

javascript - Reactjs - 将不同的 Prop 传递给同一组件

html - 对齐组件和组件内的按钮

javascript - 使用传播运算符 react 添加项目

javascript - 页面背景不显示整个图像

javascript - CORS plugin/--disable-web-security 如何在浏览器上工作?

javascript - 将 div 滑入和滑出视口(viewport)

javascript - 如何在 HTML 表格中获得这样的布局

用于在两个数组中查找公共(public)元素的 Javascript 程序

node.js - 错误 : ENOENT: no such file or directory, 状态 'C:\Users\username\Documents\My Music'

javascript - React-router:使用 <Link> 作为可点击的数据表行