【发布时间】:2018-06-01 11:13:53
【问题描述】:
不知道如何在标题中正确表达这个问题。
场景: React 应用显示一个包含 3 个元素(下拉菜单)的数组,默认关闭。
I open the second dropdown:
0: state.isOpen: closed
1: state.isOpen: open
2: state.isOpen: closed
I remove the FIRST element of the array:
0: state.isOpen: closed
1: state.isOpen: open
很奇怪,因为我希望新的第一个元素是打开的,而第二个元素是关闭的。似乎状态不遵循元素(例如,第二个元素状态将在移除后进入新的第二个元素状态)。我尝试不改变数组,而是创建一个新数组并使用它来设置状态,但结果相同。
我希望新的 [0] 会打开,而 [1] 会关闭。我怎么做?谢谢。
//Accounts.js:
accounts.map( () => { return <Account/>})
removeAccount = () => {
let accounts = this.state.accounts.map(item => return item)
accounts.splice...
this.setState({accounts: accounts})
}
//Account.js:
state.isOpen
removeAccount = this.props.removeAccount
【问题讨论】:
-
已修复。原因是因为我使用索引作为每个元素的唯一键。为密钥使用其他名称(例如唯一名称)解决了此问题。谢谢。
标签: javascript arrays reactjs state