Отправить Rest звонок в цикле - PullRequest
0 голосов
/ 09 марта 2020

У меня есть API отдыха, который для получения конечных данных AKA: ENDDATA мне нужно отправить несколько запросов (зависит от того, насколько глубоко). Таким образом, при отправке первого запроса ответ будет иметь в теле nextUri и т. Д. *

В основном мне нужно выполнить список вызовов Rest на основе nextUri, пока я не достигну конца ENDDATA.

Есть ли предпочтительный способ сделать это с помощью React & Redux \ redux-thunk.

export const find = () => dispatch => {
dispatch({ type: FIND_CUSTOMER_START });

axios({
    method: 'post',
    url: '/v1/...',
    headers: { 'X': 'XXX1' },
    auth: {
        username: 'XXX1',
        password: 'XXX'
    },
    data: 'SELECT * FROM .....'
}).then(function (response) {
    // Need to find the nextUri ... before update teh state
    dispatch({
        type: SUCCESS,
        payload: response.data
    });
}).catch(function (error) {
    dispatch({ type: ERROR, payload: error });
 });
 }

Спасибо

1 Ответ

0 голосов
/ 09 марта 2020

Определите ваш вызов API в избыточном действии

Внутри метода жизненного цикла компонента вы можете вызвать это действие. А также сопоставьте состояние магазина с вашим компонентом.

Когда действие обновляет состояние, оно вызывает повторную визуализацию и вызывает метод жизненного цикла. В методе жизненного цикла вы можете проверить, является ли ENDDATA истиной, а если нет, снова вызвать действие.

Внутри рендера вы можете иметь те же условия, что и в методе жизненного цикла, и заставить его возвращать счетчик, чтобы указать загрузку.

...