Как перенести данные из переменной в избыточное хранилище? - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть метод getPostById, который делает асинхронный запрос и возвращает сообщение, на которое мы нажали. Как создать переменную в приставке 'postArticle' и записать данные, которые пришли из https://jsonplaceholder.typicode.com/posts/$ {id}?

getPostById = async(id: any) => {
    const myResponse = await fetch(`https://jsonplaceholder.typicode.com/posts/${id}`);
    const myJson = await myResponse.json();
    const IWantToRedux = myJson.body
}

мои действия

export const GET_ID = 'GET_ID'

export const getPostById = (changedBody: any) => ({
    type: GET_ID,
    payload: changedBody,
});

const initialState = {
    background: "blue",
    changedBody: 'hello',
}

мой редуктор

export function pageReducer(state = initialState, action: any) {
    switch (action.type) {
        case GET_ID:
            return {...state, getPostByIdAction: action.payload};
        default:
            return state
    }
}

1 Ответ

0 голосов
/ 04 февраля 2020

Хорошо, я понял. Вы используете промежуточное ПО, так как оно запускается перед действием Redux, вы должны вернуть dispatch и затем отправить его следующим образом:

getPostById = async(id: any) => {
    const myResponse = await fetch(`https://jsonplaceholder.typicode.com/posts/${id}`);
    const myJson = await myResponse.json();
    const IWantToRedux = myJson.body
    return dispatch => {
    dispatch({type: GET_ID, payload: IWantToRedux});
            }
}

Я считаю, что это асинхронное действие запускается в избыточных действиях (в вашем компоненте вы должны отправлять это действие, а не тип / полезную нагрузку); Дайте мне знать, если это сработало для вас!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...