私は何かが欠けています。これは非常にシンプルなハローワールドです。目標は、アラートイベントonClickを発生させることです。このイベントは、ページが読み込まれたときに発生しますが、ボタンをクリックしたときに発生しません。私は助けに感謝します。見やすくするためのjsFiddleを次に示します。 jsFiddle
var Hello = React.createClass({
render: function() {
return <button onClick={alert("Hello World!")}>
Click Me
</button>;
}
React.render(<Hello />, document.getElementById('container'));
ReactJSは単なるJavaScriptであるため、あなたはこの間違った方向に進んでいると思います。 onClickは、React要素に接続されている関数を起動します。
var Hello = React.createClass({
myClick: function () {
alert("Hello World!");
},
render: function() {
return <button onClick={this.myClick}>
Click Me
</button>;
}
});
React.render(<Hello />, document.getElementById('container'));
注:これは、何かをすばやく/インラインにしたい場合の別の方法です。
<button onClick={()=>{ alert('alert'); }}>alert</button>
実行する関数にパラメーターがある場合、次のように関数にバインドする必要があります。
var Hello = React.createClass({
handleClick: function (text) {
alert(text)
},
render: function () {
return <button onClick = {
this.handleClick.bind(null, "Hello World")
} > Click Me < /button>;
}
});
React.render(<Hello / > , document.getElementById('container'));
これは今理にかなっています。正しい方向に私を向けてくれて、@ Chris-Hawkesに再び感謝します。
今、私は前に問題があった理由を見る。問題は、関数に引数を渡そうとしたときに発生しました。
var Hello = React.createClass({
myClick: function (text) {
alert(text);
},
render: function() {
return <button onClick={this.myClick("Hello world")}>
Click Me
</button>;
}
});
これは、元のコードと同じ動作をします。