【发布时间】:2019-01-07 02:30:46
【问题描述】:
我正在学习 React.Js。我正在尝试附加一个事件以在控制台中写入一些内容,但是我无法触发我的函数。有谁知道我如何将 onClick 事件附加到反应 div?如果这是一个基本问题,我深表歉意,但我尝试了几种不同的方法,但都没有奏效。
我尝试了以下两种触发功能的方法,但都不起作用。
所以,我意识到事件不起作用的原因是因为我正在渲染服务器端。如果我在客户端上呈现,则事件触发。如果我最初在服务器上渲染,有谁知道如何触发它?
class Individual extends React.Component {
handleClick = () => {
alert("GREAT");
}
render() {
const indDiv = {
margin: '5px',
width: '100px',
height: '120px',
cursor: 'pointer',
border: '5px solid pink',
color: 'blue',
float: 'left'
};
return (
<div>
<div onClick={this.handleClick.bind(this)}>
Alert 1
</div>
<div onClick={() => this.handleClick}>
Alert 2
</div>
<div style={indDiv}>
{this.props.num}. {this.props.name}.
</div>
</div>
);
}
}
感谢为此做出贡献的所有人。在我发现因为我最初将它创建为服务器渲染的部分之后,我必须在页面渲染后附加事件。我使用的是 ReactJS.Net,必须使用 hydrate 单独初始化它。
【问题讨论】:
-
您是否使用 create-react-app 并使用最新版本的 React?如果是这样,请从
onClick中删除this -
要么删除
this,要么将点击处理程序绑定到构造函数中的类。 -
如果你像上面的代码一样声明thr函数,你不需要绑定它。你就这样写。
onClick={this.handleClick}或onClick={()=>{this.handleClick()}}
标签: javascript reactjs reactjs.net