【发布时间】:2021-12-03 13:27:14
【问题描述】:
我正在练习反应,我有这个任务来构建一个界面,其中一个按钮可以添加元素,另一个按钮可以删除元素,两个其他按钮可以像这样逐步向上或向下移动每个元素:
我已经能够让按钮添加和删除元素,但是改变元素的位置让我有些头疼。以下是我的代码:
const [inputList, setInputList] = useState([{ inputBox: '' }]);
const handleInputChange = (e, index) => {
const { name, value } = e.target;
const list = [...inputList];
list[index][name] = value;
setInputList(list);
};
const handleRemoveClick = (index) => {
const list = [...inputList];
list.splice(index, 1);
setInputList(list);
};
const handleAddClick = () => {
setInputList([...inputList, { inputBox: '' }]);
};
const upPosition = () => {
console.log('up');
};
const downPosition = () => {
console.log('down');
};
return (
<div>
<h3>Add Elements</h3>
<button onClick={handleAddClick}>+</button>
{inputList.map((x, i) => {
return (
<div className='box inputBox' key={i}>
<input
name='inputBox'
value={x.inputBox}
onChange={(e) => handleInputChange(e, i)}
/>
<button onClick={() => upPosition()}>
<i className='fas fa-long-arrow-alt-up'></i>
</button>
<button onClick={() => downPosition()}>
<i className='fas fa-long-arrow-alt-down'></i>
</button>
<button className='mr10' onClick={() => handleRemoveClick(i)}>
<i className='fas fa-times'></i>
</button>
</div>
);
})}
</div>
);
【问题讨论】:
-
那么你到底想要什么?
标签: javascript reactjs layout click position