我已经获得了包含图像的画廊。在每张图像上,有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>
);
}
}
答案 0 :(得分:3)
React使用CamelCase约定,因此应放置onClick={this.setNewSize}
而不是onclick={this.setNewSize}
。这样对您有用吗?
答案 1 :(得分:3)
问题是onclick={ this.setNewSize}
做出反应,应该为 onClick ,像这样进行更改;
React中的事件处理与HTML中的事件处理类似,但有一些主要区别:
希望它会有所帮助,并且不要忘记绑定方法。
答案 2 :(得分:0)
您应该使用onClick,但也不要忘记绑定setNewSize,您可以通过三种方式完成此操作
1。onclick={ this.setNewSize.bind(this)}
2。constructor(props) {
super(props);
this.setNewSize = this.setNewSize.bind(this);
}
3. const setNewSize = () => {....}
答案 3 :(得分:0)
您需要了解的几件事
传递给自定义react组件的属性将作为prop传递给组件,除非在组件内使用并传递给DOM元素,否则它们不会起作用。要了解有关此支票this post
的更多信息 3。您必须在构造函数中或使用箭头函数绑定方法,以在其中正确使用this
。
要解决上述问题,如果要从库中使用组件,则需要检查组件的文档,并查看处理onClick事件需要采取什么措施。在骆驼的情况下,很有可能是onClick
。
如果您是自己编写组件的,请确保按照链接文章中的说明解决问题。将prop作为偶数传递给DOM元素。