React はエラー TypeError を報告します。未定義のプロパティ 'XX' を読み取ることができない、問題は解決されました。
2022-02-18 05:33:49
react tread recordを使用したプロジェクト開発において
まず、状況について。
バックエンドからインターフェイスを使ってデータを要求された
const [data, setData] = useState({});
const loadClueBase = async() => {
let res = await loadClueBaseInfo();
setData(res);
console.log(res);
};
useEffect(() => {
loadClueBase();
}, []);
usestateを使用してデータに格納される
子コンポーネントに渡したい
<DetailPage3 clueInfo={data.clueRecordList}
次に、子コンポーネントはpropsを使用して
<Descriptions.Item span={3} label="shopName">{this.props.clueInfo.shopName}</Descriptions.Item>
今回は、shopNameが未定義であることを意味するエラーが報告されます。
原因分析
データリクエストは非同期で、ページのレンダリングは最初に行われるため、システムがデータを取得する前にページがレンダリングされ、この時点ではまだ res は空、つまり data は空なので、当然 data の下の shopName は未定義になります。
解決方法
データが必要なので、条件付きレンダリングを使用して、データが取得された後にページをレンダリングするようにします。
{data.clueInfo && <DetailPage3 clueInfo={data.clueRecordList} />}
条件判断文の使用
data.clueInfoが空、つまりfalseのときはページをレンダリングせず、データがあるとき、data.clueInfoがtrueならページをレンダリングしてデータを読み取り、正しいページを表示します。
この時点で、私は
<Descriptions.Item span={3} label="shopName">{this.props.clueInfo.shopName}</Descriptions.Item>
ページが正しく表示されます
関連
-
[解決済み】コンポーネントの定義に表示名がない react/display-name
-
[解決済み] React テキストを挟んだ横長の仕切りを作る
-
[解決済み] React.createElement: type is invalid -- expected a string.
-
[解決済み] MUI Boxは何のためのコンポーネントですか?
-
[解決済み] jest: テストスイートの実行に失敗しました。予期しないトークンのインポート
-
[解決済み] sh: react-scripts: npm start の実行後にコマンドが見つからない。
-
[解決済み] reactstrapのドロップダウンで選択されたアイテムを設定する方法は?
-
[解決済み] Uncaught (in promise) Error: リクエストに失敗、ステータスコード404
-
[解決済み] ReactJS - SCRIPT1010: 期待される識別子 - IE11 で本番ビルドが実行されない
-
[解決済み] validateDOMNesting警告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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】React - 式は1つの親要素を持つ必要がありますか?
-
[解決済み] Jestの `beforeEach` グローバルは何のためにあるのですか?
-
[解決済み] Webpack + Babelです。プリセット "es2015 "がディレクトリに相対して見つからなかった
-
[解決済み] Angular 2の*ngForのReactでの同等品
-
[解決済み] react nativeで関数だらけのヘルパーファイルを作成する方法は?
-
[解決済み] 非必須項目に対するYupバリデーション
-
[解決済み] React - _this2.SetStateは関数ではありません。
-
[解決済み] axios-mock-adapter onGet mock data not effective.
-
[解決済み] eslint: no-case-declaration - case ブロックで予期しない字句の宣言があった。
-
[解決済み] は、gatsby-imageで動作する良いreactのカルーセルコンポーネントはありますか?[って聞かれます。]