首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于hashChange的eventListener

用于hashChange的eventListener
EN

Stack Overflow用户
提问于 2017-01-21 05:35:27
回答 1查看 7.3K关注 0票数 2

我正尝试在ReactJS中为我的页面添加一个事件侦听器。我已经将它添加到componentDidMount()中。但是只有在初始页面加载时才会触发。

当地址栏中有变化时,我如何让它触发?

代码语言:javascript
复制
componentDidMount:function(){

        window.addEventListener("hashchange", console.log('hashchange1'));
        $(window).bind("hashchange", console.log('$ - hashchange'));
        window.onhashchange =  console.log('hashchange3');      
        ReactDOM.findDOMNode(this).addEventListener('hashChange',console.log('ReactDOM - hashchange'));
    },

我尝试了几种不同的方法来让它工作,但它们都只在第一次加载时起作用。我做错了什么?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-21 06:52:16

您只需在每种情况下执行console.log,并将其返回值添加为侦听器。您需要将函数作为事件侦听器进行传递,例如:

代码语言:javascript
复制
window.addEventListener("hashchange", e => console.log('hashchange1', window.location.hash ));

https://jsfiddle.net/ku6okrp2/

使用ES5进行编辑,使其看起来更明显:

代码语言:javascript
复制
window.addEventListener("hashchange", function(e){ 
  console.log('hashchange1', window.location.hash )
});
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41772708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档