Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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 e、 按钮中的target.value有时返回未定义的值。为什么会发生这种情况?_Javascript_Reactjs - Fatal编程技术网

Javascript e、 按钮中的target.value有时返回未定义的值。为什么会发生这种情况?

Javascript e、 按钮中的target.value有时返回未定义的值。为什么会发生这种情况?,javascript,reactjs,Javascript,Reactjs,我已经定义了四个按钮,这些按钮将在onClick事件中调用相同的方法 方法 changeFilterForButtons(e){ let filter = e.target.value; console.log("----------------------------" + filter); this.props.handleData(filter); this.props.filterData(); } Render() render(){ 返回(

我已经定义了四个按钮,这些按钮将在onClick事件中调用相同的方法

方法

   changeFilterForButtons(e){
    let filter = e.target.value;
    console.log("----------------------------"  + filter);
    this.props.handleData(filter);
    this.props.filterData();
}
Render()

render(){
返回(
发票审核
收件箱
拒绝
认可的
档案文件
​
  • ); }
    大多数时候点击按钮时,上述函数获取e.target.value。但有时它返回未定义的。为什么会这样?。下面添加了Console.log输出

    尝试使用

    this.changeFilterForButtons
    
    而不是

    this.changeFilterForButtons.bind(this)
    
    或在构造函数中:

    constructor( props ){
        super( props );
        this.changeFilterForButtons = this.changeFilterForButtons.bind(this);
    }
    
    您可以通过本文了解有关bind的更多信息,如下所示:


    首先,我必须说下面两个答案都是正确的。我的错误是因为它的图标

    <button class="w-25 btn menu-btn" value='archive' onClick={this.changeFilterForButtons.bind(this)}><i className="icon-search pr-3"</i>Archive</button>
    

    我也有同样的问题。当我读到第二条评论时,我看到了在哪里可以找到解决方案

    CSS解决方案:

    button > * {
      pointer-events: none;
    }
    

    你的答案非常有用。我根据您的更改更改了代码。但我还是犯了同样的错误。这只是有时发生,不是每次都发生。可以将所有按钮都调用到一个方法中吗?我尝试不使用这个方法。props.handleData(filter);还有这个.props.filterData()。你的答案是正确的,它一直在工作。我的错误是它的图标,当我点击图标时,它返回未定义的。很高兴听到它对你有帮助,请接受答案。非常感谢。
    button > * {
      pointer-events: none;
    }