【发布时间】:2021-09-15 01:36:07
【问题描述】:
我无法从任何动态 div 中按索引号删除数组的特定元素
const { useState } = React;
function Check(){
var [Children, setChildren] = useState([])
function RemArr(docs){
const temp = [...Children]
temp.splice(docs["i"], 1);
setChildren(temp)
}
function Product(docs) {
var document = (<React.Fragment>
<button onClick={()=>RemArr(docs)}>
List {docs["i"]}
</button>
<p></p>
<input/>
<p></p>
</React.Fragment>);
setChildren([...Children, document])
}
return (<React.Fragment>
<div>Check</div>
{Children}
<button
onClick={()=>{Product({fix:false, i:Children.length})}}
>Add List </button>
</React.Fragment>)
}
ReactDOM.render(<Check />, document.body);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.0/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.0/umd/react-dom.production.min.js"></script>
当我想删除任何特定的 div 时,不仅要从数组中删除这个 div,还要从数组中删除下一个 div。
例如。
array = [0,1,2,3,4,5,6,7,8,9]
但是,如果我只想从数组中删除 6,它会删除从 6 到 9 的所有值,所以我只剩下:
array = [0,1,2,3,4,5]
我认为问题出在这个函数上:
function RemArr(docs){
const temp = [...Children]
temp.splice(docs["i"], 1);
setChildren(temp)
}
【问题讨论】:
标签: javascript arrays reactjs use-state