React で Axios を使用したエラー処理のための非同期/待機メソッド
P粉186904731
P粉186904731 2023-08-26 10:41:39
0
1
521
<p>Axios を使用してデータを取得しています: </p> <pre class="brush:php;toolbar:false;">export const getProducts = async () => { 試す { const { data } = await axios.get(`/api/products`) データを返す } キャッチ (エラー) { コンソールログ(エラー) エラーを返す } }</pre> <p>すべて問題ありませんが、try ブロック内で http エラーをキャッチする必要があります。たとえば、サーバーへの接続が失われると、Axios は AxiosError オブジェクトを返します。 </p> <ブロック引用> <ol> <li>AxiosError {メッセージ: 'リクエストはステータス コード 404 で失敗しました'、名前: 'AxiosError'、コード: 'ERR_BAD_REQUEST'、構成: {…}、リクエスト: XMLHttpRequest,...}</li> <li>コード: "ERR_BAD_REQUEST"</li> <li>構成: {transition: {…}、アダプター: array(2)、transformRequest: array(1)、transformResponse: array(1)、タイムアウト: 0、 …}</li> <li>メッセージ: 「リクエストはステータス コード 404 で失敗しました」</li> <li>名前:「AxiosError」</li> <li>リクエスト: XMLHttpRequest {onreadystatechange: null、readyState: 4、タイムアウト: 0、withCredentials: false、アップロード: XMLHttpRequestUpload、 …}</li> <li>応答: {data: 'nnn<メタ文字...re> を取得できません /api/productsnnn'、ステータス: 404、statusText: 'いいえ ' が見つかりました、ヘッダー: AxiosHeaders、構成: {...},...}</li> <li>スタック: 「AxiosError: 解決中にリクエストがステータス コード 404n で失敗しました」 (webpack-internal:///./node_modules/axios/lib/core/settle.js:24:12)n XMLHttpRequest.onloadend 内 (webpack-internal:///./node_modules/axios/lib/adapters/xhr.js:117:66)"</li> <li>[[プロトタイプ]]: エラー</li> </ol> </blockquote> <p>問題は、エラーが発生した場合に、「データの取得中にエラーが発生しました」という div をレンダリングしたいことです。エラーがない場合は、通常の方法で製品テーブルをレンダリングします。 </p> <p>関数を次のように呼び出します。</p> <pre class="brush:php;toolbar:false;">const productsArr = await getProducts()</pre> <p>productsArr が有効な製品配列であるか、それとも AxiosError であるかを確認するにはどうすればよいですか? </p>
P粉186904731
P粉186904731

全員に返信(1)
P粉066224086

エラーの処理方法は公式ドキュメントで確認できます: https://axios-http.com/docs/handling_errors

応答が受信されない場合は、エラー (axios ドキュメントからコピー) を表示できます。

リーリー

エラー処理境界を使用してコンポーネントをラップできます。エラーが発生した他のコンポーネントをラップするコンポーネントを作成し、componentDidCatch ライフサイクル メソッドを使用できます。これは、try-catch で catch{} を使用するのと同じです。 https://reactjs.org/docs/react-component.html#componentdidcatch。または、一般的な npm パッケージを使用しますhttps://www.npmjs.com/package/react-error-boundary

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート