setState上的动态变量不适用于切换

时间:2017-06-16 09:57:13

标签: javascript reactjs ecmascript-6

我有这个功能

toggleDropdown = (name) => {
    this.setState({
        [`open${name}`]: !this.state[`${name}`]
    })
}

我在多个不同的下拉列表中使用它

<div onClick={e=> toggleDropdown('Dropdown1')}</div>
<div onClick={e=> toggleDropdown('Dropdown2')}</div>

单击div时,this.state.Dropdown1this.state.Dropdown2总是如此,它不会切换,问题是什么?

1 个答案:

答案 0 :(得分:0)

两件事,

  1. 当您根据之前的状态设置状态时,请使用prevState的{​​{1}}回调机制,setStatesetState

  2. 您想获得asynchronous但仍然设置this.state.Dropdown1

  3. 尝试

    openDropdown1