javascript - 一直在 onclick 中响应调用函数
问题描述
所以我正在使用 reactjs 和 node 来制作一个网站。在这个作为登录按钮的组件中,它跟踪用户是否使用我在别处定义的另一个类/对象登录。问题是我将它设置为在用户登录时调用注销功能(以及说注销而不是登录),但是这个 onClick 功能会在按钮被点击一次时立即触发。
class LoginButton extends React.Component {
render() {
if (AuthService.isAuthed() === false) {
return (
<li className="menu_button">
<Link to="/login">Login</Link>
</li>
);
} else {
return (
<li className="menu_button">
<a href="/" onClick={console.log('Attempted to logout!')}>
Logout
</a>
</li>
);
}
}
}
我将注销功能更改为只是一个 console.log() 以了解每次调用它。
解决方案
您的 onClick 方法必须是一个函数,而不是执行函数的结果。就像是:
function onClick() {
console.log("Attempted to logout!")
}
<a href="/" onClick={ onClick }>
在 ES-6 中你可以做
<a href="/" onClick={ () => console.log("Attempted to logout!") }>
推荐阅读
- c# - ASP.NET Core 2.2 WebAPI:如何使 PushStreamContent 工作
- html - 更改模态大小以确保表单页眉和页脚在移动设备上始终可见
- javascript - 为基于 Vue 店面的网上商店设置 RSS 提要(Google 购物)
- c# - 如何添加这两个在 DataTable 中具有多个值的变量?
- python - 从熊猫中的红色列,绿色列和蓝色列创建十六进制列
- html - 从 chrome 视频标签下载 mp4,但得到一个 m4a 文件
- docker - 如何创建 Docker 文件来安装 Rstudio IDE 的社区版
- c# - WCF 生成不需要的部分类
- amazon-web-services - 对静态网站使用 Aws S3 存储桶,对单个域使用 ec2 wordpress 博客
- excel - VBA 将自动过滤的数据复制到新工作簿中