4
「非同期アクションにはカスタムミドルウェアを使用してください」というエラーが表示されます。以下のコードを使用してください。 GraphAPIコールがエラーが、それはのように聞こえる正確に何を意味Reduxアクションはプレーンなオブジェクトでなければなりません。非同期アクションにカスタムミドルウェアを使用する
export const getFriends =() =>(): Action => {
const requestConfig = {
httpMethod: 'GET',
version: 'v2.7',
};
let hasMore = false;
let friends = [];
do {
const infoRequest = new GraphRequest(
'/me/friends',
requestConfig,
(error, result) => {
if (error) {
alert('Error fetching data facebook friends');
} else {
result.data.forEach((value) => {
friends.push(value)
});
if (result.paging && result.paging.next) {
hasMore = true;
requestConfig.parameters.after = result.paging.cursors.after;
} else {
hasMore = false;
}
}
});
new GraphRequestManager().addRequest(infoRequest).start();
} while (hasMore);
return {
type: 'GET_FRIENDS',
payload: friends // this is empty because there is no await on GraphAPI
};
};
はい、私はredux-thunkを使用しています。私の中を参照してください。私はしばらく待つ必要がある。 GraphAPIはワンショットでリターン全体を返さないので、ページ付けをしなければなりません。それ、どうやったら出来るの? – user43286
このコードスニペットをフォローアップするには、同じアクションから複数のイベントを送出できるという点でredux-thunkが優れています。したがって、ロード・プロセスの開始を知らせるイベントをディスパッチし、最後まで待たずにデータを受け取るたびにADD_FRIENDSメソッドをディスパッチすることができます。何も返す必要はありません。必要なときに、単純なオブジェクトのアクションを実際にディスパッチする必要があります。 –
whileループは終了します。 – user43286