私は非常に単純なコンポーネントに反応している:あなたは、ボタン「の両方をクリックして」「1クリック」し、プログラム的にクリックされるボタン「2をクリックしてください」をクリックするとなぜ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
でなければなりません。しかし、私は、たとえば、_clickBoth
の行のいずれかを削除this.refs.button2.click();
を削除した場合、それが正しくbehaiveと1つしか表示されません
1
2
1
2
1
2
:奇妙なことは、私は6つのアラートが表示されます、です警告:
1
あなたが見ると、ここでプロジェクトを試すことができます:https://github.com/js-demos/react-ref-demo
をすることができますセットアップjsfiddleか何かのデモ? – Chris
私は問題を再現しました。本当に興味深い。 –
別の変わったことは、イベントをシミュレートするrefの数に応じて 'click'イベントが指数関数的に累積することです。 –