私が反応するようにWordpressの中で構築された大規模なウェブサイトを移行し、ここに私の問題ですよ:Reactの動的データのリストに約束から返された値を追加するには?
- ComponentDidMountで、私はAPIを呼び出して、私の状態に追加されるIDの長いリストを取得します。 IDは、私が動的にレンダリングする必要がある人に対応しています。だから今、私は私の状態は私はいくつかのJSXを返すようにオーバーマップするIDの配列として設定している
- 、
すなわちarrayIDs.map(ID => {戻りIMG SRC = {非同期値= == IMGのURLは、私は見つかっていない。問題は、IDごとに、私は上記のように私の約束から非同期値を返す別のAPI呼び出しを行う必要がありますということです/>
- }約束から返さReactで非同期の値をレンダリングする方法レンダリングする必要があるイメージIDの数があらかじめわからないため、状態を使用できません。私はすべてのIDを保留中の約束として配列に入れて状態に設定しようとしましたが、返された約束の値をレンダリングしようとすると、私の約束はすべて保留中です。
TLDR:
私は、各IDは、特定の画像URLを取得するには、別のAPI呼び出しを行う必要がありますIDの動的配列を、レンダリングする必要があります。 ReactのレンダリングメソッドでこのURLを動的にレンダリングする必要があります。 Reactで状態を使用せずに非同期の値をレンダリングするにはどうすればよいですか?別の方法が必要です。
EDIT:
私は '反応し、約束' と呼ばれるNPMパッケージで解決策を見つけた: https://www.npmjs.com/package/react-promise
例:あなたはどのようにについてのあなたの仮定を再考する必要があるよう
import Async from 'react-promise'
const imgPromise = axios.get('someAPI/' + imageID);
<Async
promise={imgPromise}
then={ (resolvedData) => <img src={ resolvedData.imgURL } /> }
/>
これはあなたの質問に対する直接的な回答ではありませんが、「IDの長いリスト」がある場合は、それぞれ別々のAPI呼び出しを行うと非常に時間がかかることが予想されます。最初のAPI呼び出しと一緒にユーザーデータも取得できませんか? – anand
はい、それは私ができるならば最適です、しかし、私は現在のWordpress APIに立ち往生しています。 NPMで解決策を見つけました.- https://www.npmjs.com/package/react-promise – daniel
ありがとうございました。私はしばらくの間、役に立つかもしれません。 – anand