Fez*_*sta 10 javascript reactjs
我正在编写一个组件装饰器,能够检测DOM元素的大小何时被更改(通过css,javascript,窗口调整大小等).
它已经完美运行了,我现在正在尝试使其API易于使用,那么,比这更容易?
class Foobar extends React.Component {
render() {
return <div onResize={() => console.log('resized!')}>Foobar</div>;
}
}
ReactDOM.render(resizeAware(Foobar), app);
Run Code Online (Sandbox Code Playgroud)
我面临的问题是,onResize
当我触发它时,事件没有被触发......
这是两次触发事件的尝试:
// method 1
onResize() {
const resizeEvent = document.createEvent('HTMLEvents');
resizeEvent.initEvent('resize', true, true);
console.log('triggering resize...');
findDOMNode(this.componentNode).dispatchEvent(resizeEvent);
}
// method 2
onResize() {
console.log('triggering resize...');
findDOMNode(this.componentNode).dispatchEvent(new Event('resize'));
}
Run Code Online (Sandbox Code Playgroud)
如果我用以下方式收听活动:
findDOMNode(this).addEventListener('resize', () => console.log('resized'));
Run Code Online (Sandbox Code Playgroud)
一切正常.因此,我调度的事件似乎是由真正的DOM元素而不是虚拟DOM接收的.
现在的问题是,为什么onResize
不调用回调?
如果没有解决方案,您将如何使我的装饰器API可用?
onResize
归档时间: |
|
查看次数: |
10927 次 |
最近记录: |