[解決済み] react.jsのインスタンスvステート変数
2022-07-27 17:57:25
質問
react.jsでは、タイムアウトの参照をインスタンス変数(this.timeout)とステート変数(this.state.timeout)のどちらに格納するのが良いのでしょうか?
React.createClass({
handleEnter: function () {
// Open a new one after a delay
var self = this;
this.timeout = setTimeout(function () {
self.openWidget();
}, DELAY);
},
handleLeave: function () {
// Clear the timeout for opening the widget
clearTimeout(this.timeout);
}
...
})
または
React.createClass({
handleEnter: function () {
// Open a new one after a delay
var self = this;
this.state.timeout = setTimeout(function () {
self.openWidget();
}, DELAY);
},
handleLeave: function () {
// Clear the timeout for opening the widget
clearTimeout(this.state.timeout);
}
...
})
これらのアプローチの両方が機能します。ただ、どちらかを使う理由を知りたいのです。
どのように解決するのですか?
インスタンスに保存することをお勧めしますが、インスタンスの
state
. いつ
state
が更新されるたびに (これは
setState
によってのみ行われるべきです)、React は
render
を呼び出し、実際のDOMに必要な変更を加えます。
の値は
timeout
の値はコンポーネントのレンダリングに影響を与えないため、この値は
state
. そこに置くと、不必要に
render
.
関連
-
[解決済み】React.jsの配列の子要素のユニークキーを理解する
-
[解決済み】JavaScriptで「無効な日付」のDateインスタンスを検出する
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] JavaScriptの変数のスコープとは何ですか?
-
[解決済み] Node.jsで環境変数を読み込む
-
[解決済み] Reactのstateとpropsの違いとは?
-
[解決済み】React.jsの状態配列の正しい修正について
-
[解決済み】JavaScriptのクロージャと無名関数の比較
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] setTimeoutからプロミスを作成する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] 無効になっている入力フィールドの値を送信する
-
[解決済み] Javascriptで動的に命名されたメソッドを呼び出すにはどうすればよいですか?
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] 文字列とラベルのローカライズとグローバリゼーションのベストプラクティス【終了しました
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] Prototypeを使ってtextareaを自動サイズ調整するには?
-
[解決済み] Node.jsのES6クラスをrequireで作る