javascript - 可以在 ReactJS 中的 anchor 标记上调用 onClick 吗

标签 javascript reactjs

各位,

我的组件中有一个 anchor 标记,如下所示:

class myComponent {

    render () {
        return (
            <a href="/link/to/other/page">Link</a>
        );
    }
}

我想在用户点击此标签时调用分析函数,如下所示:

analytics.submitData({event: "page redirection"});

请注意,我没有设置状态或调用任何反应函数。 如果我只是在 anchor 标记的 onClick 事件上调用一个函数可以吗?像这样:

anchorClickHandler() {
    analytics.submitData({event: "page redirection"});
}

<a href="/link/to/other/page" onClick={this.anchorClickHandler.bind(this)}>Link</a>

有更好的方法吗? 因为一旦发生重定向,组件卸载就会被调用,我不确定我的 onClick 处理程序是否会被调用。我是不是想错了什么?

最佳答案

您应该创建自己的元素,例如:

<span className='sub' onClick={this.anchorClickHandler}>Link</span>

使用 CSS(或内联 CSS,如果这是一个快速修复)对其应用相同的样式:

.sub {
    cursor: pointer,
    color: blue
}

然后在您向我们展示的功能中更改您的页面:

anchorClickHandler = event => {
    analytics.submitData({event: "page redirection"});
    // Navigate to /link/to/other/page
    window.location.href = '/link/to/other/page';
}

关于javascript - 可以在 ReactJS 中的 anchor 标记上调用 onClick 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54111958/

相关文章:

javascript - 在 jquery 中编写一个全局动画队列

javascript - Handlebars JS if 语句不起作用

javascript - 如何在 javascript 中返回具有 O(n) 时间复杂度的相同字母元素?

javascript - 使用 Yup 检查数组长度的验证 --> 如果长度 === 1 则出错

javascript - 装有NPM的jQuery抛出$ .ajax不是函数

java - 如何在将表单提交到 3rd 方 url 之前调用服务器端操作方法?

javascript - 如何缩短这个三元运算符?

javascript - 无法访问 HOC 的类函数中的 Prop ,但能够在渲染中访问它们

javascript - 在 React 中从数据库加载的动态接口(interface)的最佳方式

javascript - 如何在循环中使用 Fetch 查询?