[解決済み] Reactコンポーネントのメソッドを外から呼び出す
2022-10-27 15:25:32
質問
React Elementのインスタンスから、Reactコンポーネントが公開するメソッドを呼び出したいのですが、どうすればよいでしょうか。
例えば、この
jsfiddle
. を呼び出したいのですが
alertMessage
メソッドから
HelloElement
を参照します。
追加のラッパーを書くことなく、これを実現する方法はありますか?
編集 (JSFiddleからコピーしたコード)
<div id="container"></div>
<button onclick="onButtonClick()">Click me!</button>
var onButtonClick = function () {
//call alertMessage method from the reference of a React Element! Something like HelloElement.alertMessage()
console.log("clicked!");
}
var Hello = React.createClass({displayName: 'Hello',
alertMessage: function() {
alert(this.props.name);
},
render: function() {
return React.createElement("div", null, "Hello ", this.props.name);
}
});
var HelloElement = React.createElement(Hello, {name: "World"});
React.render(
HelloElement,
document.getElementById('container')
);
どのように解決するのですか?
内部関数にアクセスする方法は2つあります。一つはインスタンスレベル、もう一つは静的レベルです。
インスタンス
からの戻り値で関数を呼び出す必要があります。
React.render
. 以下を参照してください。
静的な
を見てみましょう。
ReactJS スタティック
. しかし、静的関数はインスタンスレベルのデータにアクセスできないことに注意してください。
this
は
undefined
.
var onButtonClick = function () {
//call alertMessage method from the reference of a React Element!
HelloRendered.alertMessage();
//call static alertMessage method from the reference of a React Class!
Hello.alertMessage();
console.log("clicked!");
}
var Hello = React.createClass({
displayName: 'Hello',
statics: {
alertMessage: function () {
alert('static message');
}
},
alertMessage: function () {
alert(this.props.name);
},
render: function () {
return React.createElement("div", null, "Hello ", this.props.name);
}
});
var HelloElement = React.createElement(Hello, {
name: "World"
});
var HelloRendered = React.render(HelloElement, document.getElementById('container'));
次に
HelloRendered.alertMessage()
.
関連
-
[解決済み] Reactルータを使ったプログラムによるナビゲーション
-
[解決済み] React JSX内のループ
-
[解決済み] Reactのこの3つの点は何をするところなのでしょうか?
-
[解決済み] React-routerのURLを更新したり、手動で書き込んだりするとうまくいかない
-
[解決済み] React NativeとReactの違いは何ですか?
-
[解決済み] setStateを呼び出さずにReactコンポーネントを強制的に再レンダリングすることは可能ですか?
-
[解決済み] React jsのonClickはメソッドに値を渡すことができない
-
[解決済み] 親メソッドから子メソッドを呼び出す
-
[解決済み] Reactコンポーネント外でのクリックを検出する
-
[解決済み] クエリ文字列からパラメータ値を取得する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Warning.Itが表示されるのはなぜですか?Functions are not valid as a React child?
-
[解決済み] Jestの `beforeEach` グローバルは何のためにあるのですか?
-
[解決済み] React.createElement: type is invalid -- expected a string.
-
[解決済み] react-router-domを使用する際に「Function components cannot be given refs」を回避するにはどうすればよいですか?
-
[解決済み] useStateプロパティのフックにmap関数を使用する方法
-
[解決済み] React - _this2.SetStateは関数ではありません。
-
[解決済み] sh: react-scripts: npm start の実行後にコマンドが見つからない。
-
[解決済み] 矢印本体を囲む予期せぬブロックステートメント
-
[解決済み] React Hooksの「exhaustive-deps」lintルールを理解する
-
[解決済み] React JSXのforEach()でHTMLが出力されない