React, Redux - Получение данных после обновления через вызов API

Я использую реакцию с редукцией и машинописным текстом, пытаюсь добавить элемент из реакции через вызов api, который возвращает результат независимо от того, успешен он или нет.

Итак, я получаю данные из componentDidMount

componentDidMount() {
    this.props.dispatch(loadData());
}

И из слоя действий я добавляю элемент, как показано ниже

static addItem = (Item: IAddItemRequest): Promise<number> => {
            return Promise.resolve(
            AI.addItem(Item).then((ItemData) => {
                return ItemData;
            }).catch(error => {
                return error;
            }));
        }

Итак, как я могу загрузить данные после добавления элемента

Также AddItem не меняется в состоянии

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
256
1

Ответы 1

Возможный soln можно выбрать с помощью двух действий: 1 для добавления элемента, а для второго - для загрузки данных.

export const loadData = (ItemData) => {
    return {
        type: LOAD_DATA,
        payload: ItemData
    };
};

export const addItemAction = (Item) => {
    return dispatch => {
        addItem(Item).then(ItemData => {
            dispatch(loadData(ItemData));
        });
    };
};

Выше оба связаны между собой действиями redux, и мы должны вызвать первое действие в методе componentDidMount компонента реакции, как показано ниже.

componentDidMount() {
    this.props.dispatch(addItemAction(Item));
}

Другие вопросы по теме