Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除动态元素_Javascript_Reactjs - Fatal编程技术网

Javascript 删除动态元素

Javascript 删除动态元素,javascript,reactjs,Javascript,Reactjs,我想删除程序中的动态元素,但我想,我对“this”有问题。当我单击“X”时,什么也没发生,控制台没有显示任何错误。也许有更有经验的人会帮助我 ('items'是处于状态的数组) 主文件: removeItemCity(i){ let arr = this.state.items; arr.splice(i, 1); this.setState({items:arr}) } renderItems(item,i){ return(<Tiles key = {'key_' + i} i

我想删除程序中的动态元素,但我想,我对“this”有问题。当我单击“X”时,什么也没发生,控制台没有显示任何错误。也许有更有经验的人会帮助我

('items'是处于状态的数组)

主文件:

removeItemCity(i){
 let arr = this.state.items;
 arr.splice(i, 1);
 this.setState({items:arr})
}

renderItems(item,i){
return(<Tiles key = {'key_' + i} index = {i} delete = {() =>                                                                           
            {this.removeItemCity}}/>);  
}

render() {
        return(
        <div className = "BodyAppContainer">
            <div className = "grid" id="items">
                {this.state.items.map(this.renderItems) }
            </div>
         </div>
        );
     }
removietemcity(一){
设arr=this.state.items;
阵列拼接(i,1);
this.setState({items:arr})
}
效果图(项目一){
报税表(
{this.removietemcity}}/>);
}
render(){
返回(
{this.state.items.map(this.renderItems)}
);
}
和我的组件“瓷砖”

从“React”导入React;
类扩展了React.Component{
建造师(道具){
超级(道具);
}
删除(){
this.props.delete(this.props.index);
}
render(){
返回(
城市:{this.props.index}
这个.remove}>X
);
}
}
导出默认瓷砖;

X按钮的onClick道具没有执行任何操作:

onClick={() => this.remove}
单击时,它将调用该箭头函数。但是这个箭头函数只有this.remove,它是一个方法的定义。帮助您的第一步是使用括号调用该方法:

onClick={() => this.remove()}
同样的情况也适用于您的
renderItems()
,在传递给
Tiles
delete
道具中,您还缺少用于执行函数调用的括号:

delete={() => {this.removeItemCity}}
试试这个:

   <button className="removeButton" onClick={this.remove} >X</button>
X

Hi,您能否先在文本编辑器中编写问题,然后在此处复制和粘贴,以修复样式和缩进?这将有助于阅读代码。也欢迎其他人编辑此问题以改进样式。谢谢,但现在我在控制台中遇到此错误:_this2未定义。您必须更具体地说明此问题的内容和错误所在。我猜你在这部分也犯了同样的错误:
delete={()=>{this.removietemcity}
(你缺少函数调用的括号)@DawidMalec你必须具体说明哪行代码给出了错误。如果你只是说,
\u这个2是未定义的
,我们将无法帮助你。您的代码似乎有许多事件处理程序函数,这些函数要求您了解如何绑定关键字
this
,以匹配正确的组件。我建议您在React中阅读更多关于绑定的内容,也许这篇文章您是对的,谢谢您的帮助和链接。我将阅读这篇文章,并尝试解决它。:)
   <button className="removeButton" onClick={this.remove} >X</button>