ちょっと〜私は、同じOnClick on Reactでsubmit関数とgoogleのクリックイベントを発生させようとしています。どのように私はこれをReactで行うのですか?Reactで2つのonClick関数を追加する方法
これはコードです:
<button className={s.button} onClick={this.submit} onClick={() => {gaClickEvent('where-to-buy', 'submit' , undefined)}}>
ちょっと〜私は、同じOnClick on Reactでsubmit関数とgoogleのクリックイベントを発生させようとしています。どのように私はこれをReactで行うのですか?Reactで2つのonClick関数を追加する方法
これはコードです:
<button className={s.button} onClick={this.submit} onClick={() => {gaClickEvent('where-to-buy', 'submit' , undefined)}}>
これには2通りの方法があります。
まず、ES6関数のリテラル構文でインラインで定義しているクリックハンドラに2つのステートメントを挿入できます。
しかし、これは私がonClickハンドラを使いこなすのに便利なコードです。私があなただったら、このロジックをコンポーネントのハンドラメソッドに分けます。例:最初の1の2番目のonClickを呼び出さない理由
var MyComponent = React.createClass({
handleClick() {
gaClickEvent('home-where-to-buy', 'submit' , undefined);
this.submit();
},
render() {
return <button
className={s.button}
onClick={(e) => this.handleClick(e)} >
I am a button!
</button>;
}
})
お返事ありがとうございます。最初の方法を試しましたが、フォームを送信しません。代わりに、 'Uncaught TypeError:未定義のpreventDefault 'を読み取れません。 – bluegen1e
これはサブミット関数' submit(e){ e.preventDefault();です。 if(this.refs.input.value.length === 5){ this.context.router.push( '/ where-to-buy /?zip =' + this.refs.input.value); } } ' – bluegen1e
私はそれがうまくいくように私の答えを変更しました。 –
あなたはこの
class Mycomponent extends React.component {
submit(e) {
//handle event
}
render() {
return <button className={s.button} onClick={this.submit.bind(this)} />
}
}
を行うことができますか? – Kafo