Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs hashChange的eventListener_Reactjs_Addeventlistener_Hashchange - Fatal编程技术网

Reactjs hashChange的eventListener

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

我正在尝试在ReactJS中为我的页面添加事件侦听器。我已将其添加到componentDidMount()。但仅在初始页面加载时触发

当地址栏发生变化时,如何触发它

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)