[英]Is there a way to delete components from an array with a button click?
仍然很新的反应,如果这个问题看起来很简单,很抱歉。
我目前遇到的问题是,每次单击添加按钮时我都尝试添加一个组件(这有效),但是当我按下删除按钮时,它会删除数组中除第一个之外的所有组件似乎无法删除。 我正在使用 .splice() 尝试删除数组中的最后一个元素 (-1) 并设置新的 state 以反映这一点,但我所做的一切似乎都没有解决任何问题。 任何投入将不胜感激!
function App() {
const [inputList, setInputList] = useState([]);
const [disabled, setDisabled] = useState(false);
const onAddBtnClick = event => {
if (inputList.length < 5){
setInputList(inputList.concat(<Autocomplete items={universities} />));
}else{
setDisabled(true);
}
};
const onDeleteBtnClick = event => {
setInputList(inputList.splice(-1, 1));
if (inputList.length < 5){
setDisabled(false);
}
};
return (
<Fragment>
<div className="autocompleter">
<Button onClick={onAddBtnClick} disabled={disabled} size="lg" block>Add Education (Maximum 5)</Button>
<Button onClick={onDeleteBtnClick} size="lg" block>Delete Education</Button>
{inputList}
</div>
</Fragment>
);
}
如果要删除最后一个元素,请使用 Array.splice(0,array.length-1)。 这将删除您的最后一个元素。 希望这可以帮助。 在您的情况下,请使用此代码块。
setInputList(prev=>prev.splice(0,prev.length-1));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.