Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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 通过按钮';s';这';反应_Javascript_Reactjs - Fatal编程技术网

Javascript 通过按钮';s';这';反应

Javascript 通过按钮';s';这';反应,javascript,reactjs,Javascript,Reactjs,为了给按钮添加一个函数,我们通常会这样做 <button onClick={this.delete_this.bind(this)}>clickable</button> 我应该怎么做呢?首先,不要在渲染中使用bind,这对性能不好,而且在大多数情况下会失败shouldComponentUpdate。改为在类构造函数中执行 <button onClick={this.delete_this}>clickable</button> 首先,不要在r

为了给按钮添加一个函数,我们通常会这样做

<button onClick={this.delete_this.bind(this)}>clickable</button>

我应该怎么做呢?

首先,不要在
渲染中使用
bind
,这对性能不好,而且在大多数情况下会失败
shouldComponentUpdate
。改为在
构造函数
中执行

<button onClick={this.delete_this}>clickable</button>

首先,不要在
render
中使用
bind
,这对性能不好,在大多数情况下,它会失败
shouldComponentUpdate
。改为在
构造函数
中执行

<button onClick={this.delete_this}>clickable</button>

@AndrewLi好的,我会试试看,如果它这么简单的话,那么我可能是想得太多了>@AndrewLi我不认为它起作用了我的按钮是
delete
,我正在运行
delete\u this(value){console.log(value.value);}
,它在控制台中出现了未定义的问题。@AndrewLi所以我应该添加
ref={(input)=>{this.textInput=input;}}
到按钮本身?因此类似于:
{this.button=input}}>可点击的
?@Solo好的,这似乎可行。我会用filter试试。@AndrewLi好的,我会试试,如果它这么简单,那么我可能会想得太多了>@AndrewLi我认为它不起作用我的按钮是
delete
,我正在运行
delete\u这个(值){console.log(value.value);}
控制台中出现了未定义的内容。@AndrewLi所以我应该在按钮本身添加类似
ref={(input)=>{this.textInput=input;}}}
?比如:
{this.button=input}}>clickable
?@Solo好的,这似乎可行。我会用过滤器试试。你知道怎么用过滤器吗?我正在尝试
this.buttons=this.buttons.filter((item)=>item!=e.target)但它仍然有2个按钮(数组包含2个)。数组是由
组成的,如果你有固定数量的按钮(a'la不是动态的),看一看。它将是动态的,这就是为什么我想得到button对象,但它没有像我想象的那样工作。这也是Andrew给我的建议,但在我使用它时,它返回未定义。它确实应该返回筛选数组,但我将编写一个新问题,因为它与此问题并不相关。您知道如何将其与筛选器一起使用吗?我正在尝试
this.buttons=this.buttons.filter((item)=>item!=e.target)但它仍然有2个按钮(数组包含2个)。数组是由
组成的,如果你有固定数量的按钮(a'la不是动态的),看一看。它将是动态的,这就是为什么我想得到button对象,但它没有像我想象的那样工作。这也是Andrew给我的建议,但当我使用它时,它返回未定义。它确实应该返回过滤数组,但我将写一个新问题,因为它与这个问题没有真正的关系。
function delete_this(event) {
    // event has all kinds of cool stuff, check it out
    console.log(event)

    // current React component (class)
    console.log(this)
}