[解決済み] React.useStateでpropsから状態を再読み込みしない
2022-04-14 05:21:10
質問
プロップス変更時に状態がリロードされることを期待しているのですが、これがうまくいかず
user
変数が更新されないのは、次の
useState
を呼び出したのですが、どうしたのでしょうか?
function Avatar(props) {
const [user, setUser] = React.useState({...props.user});
return user.avatar ?
(<img src={user.avatar}/>)
: (<p>Loading...</p>);
}
解決方法は?
useStateに渡される引数は、クラスコンポーネントのコンストラクタで状態を設定するのと同じように初期状態であり、再レンダリング時に状態を更新するために使用されるわけではありません。
プロップチェンジの際に状態を更新したい場合は
useEffect
フック
function Avatar(props) {
const [user, setUser] = React.useState({...props.user});
React.useEffect(() => {
setUser(props.user);
}, [props.user])
return user.avatar ?
(<img src={user.avatar}/>)
: (<p>Loading...</p>);
}
関連
-
[解決済み】React - 式は1つの親要素を持つ必要がありますか?
-
[解決済み] react-router-domを使用する際に「Function components cannot be given refs」を回避するにはどうすればよいですか?
-
[解決済み] Webpack + Babelです。プリセット "es2015 "がディレクトリに相対して見つからなかった
-
[解決済み] sh: react-scripts: npm start の実行後にコマンドが見つからない。
-
[解決済み] React の open mailto E-Mail クライアントの onClick で textarea から本文を取得する。
-
[解決済み] react.jsで複数のモジュールをエクスポートする
-
[解決済み] React」は定義される前に使用されていた
-
[解決済み] Reactのstateとpropsの違いとは?
-
[解決済み】Reactコンポーネントはpropsから状態を初期化する
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】無効な設定オブジェクトです。APIスキーマと一致しない設定オブジェクトを使用してWebpackが初期化されました。
-
[解決済み] Jestの `beforeEach` グローバルは何のためにあるのですか?
-
[解決済み] React テキストを挟んだ横長の仕切りを作る
-
[解決済み] MUI Boxは何のためのコンポーネントですか?
-
[解決済み] Webpack + Babelです。プリセット "es2015 "がディレクトリに相対して見つからなかった
-
[解決済み] 非必須項目に対するYupバリデーション
-
[解決済み] nginxでcertbotを使用する際の問題点
-
[解決済み] validateDOMNesting警告React
-
[解決済み] Cross-envでyarnの実行時にenv変数が変更されない。
-
[解決済み] Reactのrender()にFont Awesomeのアイコンを入れる方法