제목에서이 질문의 단어를 올바르게 말하기 어렵습니다.Reactjs : 배열 요소를 제거하고 요소 상태가 따르지 않습니다.
시나리오 : 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
나는 새로운 첫 번째 요소가 열리고 두 번째 요소는 닫히기를 기대하기 때문에 이상합니다. 상태가 요소를 따르지 않는 것처럼 보입니다 (예 : 두 번째 요소 상태는 제거 후 새로운 두 번째 요소로 이동합니다). 나는 배열을 돌연변이 시키려고 시도하지 않고 새로운 배열을 만들고 그것을 setstate에 사용했다. 그러나 같은 결과를 보였다.
새로운 [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
수정 됨. 이유는 각 요소의 고유 키로 색인을 사용했기 때문입니다. 키에 다른 이름 (예 : 고유 이름)을 사용하면이 문제가 해결되었습니다. 감사. – goldensausage