[解決済み] Reactコンポーネントの状態をブーリアンに切り替えるには?
2022-07-03 16:24:08
質問
Reactコンポーネントの状態をブーリアンに切り替える方法を知りたいです。例えば
コンポーネントのコンストラクタでbooleanの状態をチェックしています。
constructor(props, context) {
super(props, context);
this.state = {
check: false
};
};
チェックボックスがクリックされるたびに状態を切り替えるために
this.setState
メソッドを使用しています。
<label>
<input
type=checkbox"
value="check"
onChange={(e) => this.setState({check: !check.value})}
/>
Checkbox
</label>
もちろん Uncaught ReferenceError: check is not defined. . では、どうすればこれを実現できるのでしょうか?
どのように解決するのですか?
誰も投稿していないので、私が正解を投稿します。新しい状態の更新が前の状態に依存する場合、常に関数形式の
setState
の関数形式を使用します。これは、新しい状態を返す関数を引数として受け入れます。
あなたの場合
this.setState(prevState => ({
check: !prevState.check
}));
参照 ドキュメント
この回答は人気があるので、React Hooks (v16.8+) で使用されるべきアプローチを追加します。
もし、あなたが
useState
フックを使っている場合は、次のコードを使います (新しい状態が前の状態に依存している場合)。
const [check, setCheck] = useState(false);
// ...
setCheck(prevCheck => !prevCheck);
関連
-
Vueの要素ツリーコントロールに破線を追加する説明
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] GUID / UUIDの作成方法
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
JavaScriptにおけるマクロタスクとミクロタスクの詳細
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
Vueのクラススタイルの使い方の詳細
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】GETできない / Nodejsエラー
-
[解決済み】"フォームが接続されていないため、フォームの送信がキャンセルされました "というエラーの取得について
-
[解決済み】 env: node: macにそのようなファイルやディレクトリはありません
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
JavaScriptのgetElementById、getElementsByTagNam、getElementsByClassNameの違いと使い方