在React中,可以通過使用狀態來動態添加和刪除元素。
要動態添加元素,可以在組件的狀態中定義一個數組,然后使用setState
方法來更新數組。例如,假設有一個組件需要動態添加一個列表項:
import React, { useState } from 'react';
function MyComponent() {
const [list, setList] = useState([]);
const addItem = () => {
setList([...list, 'New Item']);
};
return (
<div>
<button onClick={addItem}>Add Item</button>
<ul>
{list.map((item, index) => (
<li key={index}>{item}</li>
))}
</ul>
</div>
);
}
export default MyComponent;
上述代碼中,list
是一個狀態數組,addItem
函數用于在點擊按鈕時向list
數組中添加一個新的項。在渲染部分,使用map
方法遍歷list
數組來生成列表項。
要動態刪除元素,可以通過使用filter
方法來過濾掉需要刪除的元素。例如,假設有一個組件需要動態刪除一個列表項:
import React, { useState } from 'react';
function MyComponent() {
const [list, setList] = useState(['Item 1', 'Item 2', 'Item 3']);
const removeItem = (index) => {
setList(list.filter((item, i) => i !== index));
};
return (
<div>
<ul>
{list.map((item, index) => (
<li key={index}>
{item}
<button onClick={() => removeItem(index)}>Remove</button>
</li>
))}
</ul>
</div>
);
}
export default MyComponent;
上述代碼中,removeItem
函數接受一個索引參數,然后使用filter
方法來過濾掉對應索引的項,更新list
數組。在渲染部分,每個列表項后面都有一個刪除按鈕,點擊按鈕時調用removeItem
函數,并傳入對應的索引。