Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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 Don';我不明白onclick事件为什么不触发_Javascript_Reactjs_Onclick_Imageicon - Fatal编程技术网

Javascript Don';我不明白onclick事件为什么不触发

Javascript Don';我不明白onclick事件为什么不触发,javascript,reactjs,onclick,imageicon,Javascript,Reactjs,Onclick,Imageicon,我得到了一个有图片的画廊。在每幅图像上有3个图标,当你点击它们时,这些图标将执行操作。我试图激活图像图标上的onclick事件,但什么也没发生。图像图标是使用字体awsome在渲染功能中创建的。我是JavaScript新手 我一直试图在网站上搜索其他问题,但没有一个解决方案适合我 我要激活的功能: setNewSize() { const size = 500 this.setState({ size }); } 这里的问题是:

我得到了一个有图片的画廊。在每幅图像上有3个图标,当你点击它们时,这些图标将执行操作。我试图激活图像图标上的onclick事件,但什么也没发生。图像图标是使用字体awsome在渲染功能中创建的。我是JavaScript新手

我一直试图在网站上搜索其他问题,但没有一个解决方案适合我

我要激活的功能:

setNewSize() {

    const size = 500
    this.setState({
            size
        });

  }
这里的问题是:


 render() {
   return (
     <div
       className="image-root"
       style={{
         backgroundImage: `url(${this.urlFromDto(this.props.dto)})`,
         width: this.state.size + 'px',
         height: this.state.size + 'px'
       }}
       >
       <div>

         <FontAwesome className="image-icon" name="clone" title="clone"/>  
         <FontAwesome className="image-icon" name="filter" title="filter" />
         <FontAwesome className="image-icon" name="expand" title="expand" onclick={ this.setNewSize} />
       </div>


     </div>
   );
 }


}


render(){
返回(
);
}
}

React使用CamelCase约定,因此应该将
onClick={this.setNewSize}
而不是
onClick={this.setNewSize}
。这对您有用吗?

React使用CamelCase约定,因此您应该将
onClick={this.setNewSize}
而不是
onClick={this.setNewSize}
。这对你有用吗?

问题是
onclick={this.setNewSize}

在react中,单击一次应为,如下更改

React中的事件处理与HTML中的事件处理类似,但有几个关键区别:

  • React事件使用camelCase命名,而HTML事件通常使用小写字母表示
  • 在JSX中,传递函数作为事件处理程序,而不是函数名(字符串)
  • 不能返回false以防止react中的默认行为。相反,您应该调用e.preventDefault()
    希望有帮助,不要忘记绑定方法。

    问题是
    onclick={this.setNewSize}

    在react中,单击一次应为,如下更改

    React中的事件处理与HTML中的事件处理类似,但有几个关键区别:

  • React事件使用camelCase命名,而HTML事件通常使用小写字母表示
  • 在JSX中,传递函数作为事件处理程序,而不是函数名(字符串)
  • 不能返回false以防止react中的默认行为。相反,您应该调用e.preventDefault()
    希望它有帮助,不要忘记绑定方法。

    您应该使用onClick,但也不要忘记绑定setNewSize。您可以通过三种方式完成此操作

    1.
    onclick={this.setNewSize.bind(this)}

    2.
    constructor(道具){
    超级(道具);
    this.setNewSize=this.setNewSize.bind(this);
    }

    3.
    const setNewSize=()=>{….}

    您应该使用onClick,但也不要忘记绑定setNewSize。您可以通过三种方式完成此操作

    1.
    onclick={this.setNewSize.bind(this)}

    2.
    constructor(道具){
    超级(道具);
    this.setNewSize=this.setNewSize.bind(this);
    }

    3.
    const setNewSize=()=>{….}

    您需要知道的事情很少

  • FontAwesome是由您编写或从库中使用的自定义react组件
  • 传递给自定义react组件的属性作为道具传递给组件,除非在组件中使用并传递给DOM元素,否则它们不会产生任何效果。想知道更多关于这张支票的信息

    3.必须在构造函数中绑定方法或使用箭头函数在其中正确使用
    this

  • 要解决上述问题,如果从库中使用组件,则需要检查组件的文档,并查看处理onClick事件所需的道具。在驼峰情况下,很可能是
    onClick


    如果您自己编写了组件,请确保按照链接文章中的说明解决问题,即将道具作为偶数传递给DOM元素。

    您需要知道的事情很少

  • FontAwesome是由您编写或从库中使用的自定义react组件
  • 传递给自定义react组件的属性作为道具传递给组件,除非在组件中使用并传递给DOM元素,否则它们不会产生任何效果。想知道更多关于这张支票的信息

    3.必须在构造函数中绑定方法或使用箭头函数在其中正确使用
    this

  • 要解决上述问题,如果从库中使用组件,则需要检查组件的文档,并查看处理onClick事件所需的道具。在驼峰情况下,很可能是
    onClick


    如果您自己编写了组件,确保按照链接帖子中的说明解决问题,即将道具作为偶数传递给DOM元素。

    这不是一个正确的答案,尽管它能解决问题。这不是一个正确的答案,尽管它能解决问题。这不是一个正确的答案,尽管它能解决问题。@ShubhamKhatri你能解释一下原因吗?这可能会有帮助。我添加了一个答案这不是一个正确的答案,尽管它可以解决问题。@ShubhamKhatri你能解释一下原因吗?也许会有帮助。我补充了一个答案