我有一个非常简单的反应成分:为什么ref按钮会被点击3次?
import React, {Component} from 'react';
class Hello extends Component {
render() {
return <div>
<h1>Hello Freewind</h1>
<div>
<button ref="button1" onClick={() => alert('1')}>Click 1</button>
<button ref="button2" onClick={() => alert('2')}>Click 2</button>
</div>
<div>
<button onClick={this._clickBoth.bind(this)}>Click both</button>
</div>
</div>;
}
_clickBoth() {
this.refs.button1.click();
this.refs.button2.click();
}
}
export default Hello;
当你点击“点击这两个”按钮,将“点击1”和“2点击”按钮将被编程点击。奇怪的是,我会看到6个警报:
1
2
1
2
1
2
应
1
2
但如果我删除任何行_clickBoth
,比如说,删除this.refs.button2.click();
,它将正确behaive和只显示一个警告:
1
你可以看到,在这里尝试项目:https://github.com/js-demos/react-ref-demo
你能设置上的jsfiddle什么的演示? – Chris
我已经转载了这个问题。有趣的,的确如此。 –
另一个奇怪的事情是,'click'事件的累积速度取决于您模拟事件的参考数量。 –