[英]Don't understand why onclick event not firing
我已经获得了包含图片的画廊。 在每张图像上,有3个图标,当您单击它们时它们应该执行操作。 我正在尝试激活图像图标上的onclick事件,但没有任何反应。 图像图标是在font-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>
);
}
}
React使用CamelCase约定,因此您应该放置onClick={this.setNewSize}
而不是onclick={this.setNewSize}
。 那对你有用吗?
问题是onclick={ this.setNewSize}
在反应中,应该是onClick ,这样改变;
在React中处理事件与在HTML中处理事件相似,但有一些主要区别:
希望对您有所帮助,不要忘记绑定方法。
您应该使用onClick,但也不要忘记绑定setNewSize,您可以通过三种方式执行此操作
1. onclick={ this.setNewSize.bind(this)}
2. constructor(props) { super(props); this.setNewSize = this.setNewSize.bind(this); }
constructor(props) { super(props); this.setNewSize = this.setNewSize.bind(this); }
constructor(props) { super(props); this.setNewSize = this.setNewSize.bind(this); }
3. const setNewSize = () => {....}
您需要了解的几件事
传递给自定义react组件的属性将作为prop传递给组件,除非在组件内使用并传递给DOM元素,否则它们不会产生任何影响。 要了解有关此内容的更多信息,请查看此帖子
3.您必须在构造函数中或使用箭头函数绑定方法,以在其中正确使用this
。
要解决上述问题,如果您正在从库中使用组件,则需要检查组件的文档,并查看处理onClick事件需要采取什么措施。 在骆驼的情况下,很有可能是onClick
。
如果您是自己编写组件的,请确保按照链接文章中的说明解决问题。 将prop作为偶数传递给DOM元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.