Reactjs hashChange的eventListener
我正在尝试在ReactJS中为我的页面添加事件侦听器。我已将其添加到componentDidMount()。但仅在初始页面加载时触发 当地址栏发生变化时,如何触发它Reactjs hashChange的eventListener,reactjs,addeventlistener,hashchange,Reactjs,Addeventlistener,Hashchange,我正在尝试在ReactJS中为我的页面添加事件侦听器。我已将其添加到componentDidMount()。但仅在初始页面加载时触发 当地址栏发生变化时,如何触发它 componentDidMount:function(){ window.addEventListener("hashchange", console.log('hashchange1')); $(window).bind("hashchange", console.log('$ - hashcha
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'));
},
我尝试了几种不同的方法让它工作,但它们都只在第一次加载时工作。我做错了什么
谢谢。您只是在每种情况下执行
控制台.log
,并将其返回值添加为侦听器。您需要将函数作为事件侦听器传递,例如:
window.addEventListener("hashchange", e => console.log('hashchange1', window.location.hash ));
使用ES5进行编辑以使其看起来更明显:
window.addEventListener("hashchange", function(e){
console.log('hashchange1', window.location.hash )
});
啊,我明白了,我没有正确地理解它。尽管如此,我还是认为会调用函数(console.log),但我想它需要一个事件。谢谢。@fractal5如果不执行,您可以将
console.log
作为事件侦听器传递,就像其他任何函数一样:window.addEventListener(“hashchange”,console.log)代码>