[解決済み】ReactのuseState()って何?
質問
現在、Reactのフックの概念を学んでおり、以下の例を理解しようとしています。
import { useState } from 'react';
function Example() {
// Declare a new state variable, which we'll call "count"
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
上記の例では、ハンドラ関数のパラメータ自体にカウンターをインクリメントしています。もし、イベントハンドラ関数の内部でカウント値を変更したい場合は、どうすればよいでしょうか?
次のような例を考えてみましょう。
setCount = () => {
//how can I modify count value here. Not sure if I can use setState to modify its value
//also I want to modify other state values as well here. How can I do that
}
<button onClick={() => setCount()}>
Click me
</button>
解決方法は?
Reactフック
のような react のコア機能にアクセスするための新しい方法です (まだ開発中です)。
state
クラスを使わずにカウンタを増やしたい場合、この例では
onClick
propを使えば、次のようなことができます。
...
const [count, setCounter] = useState(0);
const [moreStuff, setMoreStuff] = useState(...);
...
const setCount = () => {
setCounter(count + 1);
setMoreStuff(...);
...
};
とonClickの2種類があります。
<button onClick={setCount}>
Click me
</button>
この行で何が起こっているのか、さっそく説明しましょう。
const [count, setCounter] = useState(0);
useState(0)
はタプルを返し、最初のパラメータ
count
はカウンタの現在の状態であり
setCounter
は、カウンターの状態を更新できるようにするメソッドです。私たちは
setCounter
メソッドで状態を更新し
count
の内部で使用しています。
setCount
フックのアイデアは、より機能的なコードを維持すること、そして
クラスベースのコンポーネント
必要でない場合は
フックについては、複数の例を含む完全な記事を書きました。
(など(カウンターを含む)。
このコードペン
を利用した。
useState
,
useEffect
,
useContext
および
カスタムフック
. この回答でフックがどのように機能するかについてもっと詳しく説明することもできますが、ドキュメントでは
ステートフック
やその他のフックについて詳しく説明しています。
を更新しました。 フックはもはや提案ではない バージョン 16.8 について、Reactのサイトで回答しているセクションがあり、使用できるようになりました。 よくある質問 .
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] Reactルータを使ったプログラムによるナビゲーション
-
[解決済み] React JSX内のループ
-
[解決済み] Reactのこの3つの点は何をするところなのでしょうか?
-
[解決済み] React NativeとReactの違いは何ですか?
-
[解決済み】JavaScript版sleep()とは?)
-
[解決済み】ReactJS - "setState "が呼ばれるたびにrenderが呼び出されるのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: 'undefined'はオブジェクトではありません。
-
[解決済み】JavaScriptで':'(コロン)は何をするのか?
-
[解決済み】SecurityError: オリジンを持つフレームがクロスオリジンフレームにアクセスするのをブロックした
-
[解決済み】jquery $.ajaxオブジェクトのresponseJSONプロパティを取得する方法 [重複]。
-
[解決済み】JavaScript "Uncaught TypeError: object is not a function" 連想性の質問
-
[解決済み】ある要素が可視DOMに存在するかどうかを確認するにはどうすればいいですか?
-
[解決済み】SyntaxError: ChromeのJavascriptコンソールでUnexpected Identifierが発生する。
-
[解決済み】React、Uncaught ReferenceError。ReactDOMは定義されていません
-
[解決済み】 \u003C とは何ですか?
-
[解決済み] タプルからJavaScriptの変数への代入