我有一个列表,像这样创建删除元素:使用状态,按钮从列表
return (this.state.limit).fill().map((_,index) => {
return (
<div key={`${index}`}> Item </div>
)
)
如何创建一个按钮,它可以让我删除特定的div元素以及减少国家限制?
我有一个列表,像这样创建删除元素:使用状态,按钮从列表
return (this.state.limit).fill().map((_,index) => {
return (
<div key={`${index}`}> Item </div>
)
)
如何创建一个按钮,它可以让我删除特定的div元素以及减少国家限制?
在React中,您将不得不几乎将所有内容绑定到数据。在你的例子中,所有这些项目都应该由一些基础数据来表示。下面是显示这是一个非常简单的例子:
class Example extends React.Component {
constructor() {
super();
this.state = {
data: ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5'],
};
}
removeItem(item) {
let data = this.state.data.filter((_, i) => i != item);
this.setState({ data });
}
render() {
return (
<div>
{this.state.data.map((item, i) => <div key={i} onClick={() => this.removeItem(i)}>{item}</div>)}
</div>
);
}
}
ReactDOM.render(<Example/>, document.getElementById('View'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="View"></div>
谢谢!这是我需要的指导:) – kermitvomit
@FabianSchultz哎呀,好点。不理我! –
@FabianSchultz我删除了该评论,所以有人不会看到这一点,并感到困惑。 –
创建一个按钮
<button onClick={removeDiv}>
Remove div
</button>
添加功能removeDiv
function removeDiv(){
this.state.limit.shift()
this.setState({limit: this.state.limit})
}
当改变状态,您的组件将重新呈现它的自我与新的状态。
更新'limit'状态(通过去除的setState的项目),并让反应再次渲染它。 –
更新状态只会删除最后一个div。我正在寻找一种方法来移除数组中间的div元素。 – kermitvomit
然后删除该状态中的特定项目。 –