Как реализовать вызовы post api с использованием промежуточного программного обеспечения thunk в реагировать на избыточность? - PullRequest
0 голосов
/ 25 апреля 2019

Я работал с redux-thunk и superagent npm для аутентификации jwt, и мне хотелось бы знать, как реализовать почтовые вызовы с использованием промежуточного программного обеспечения thunk в файле actions.js, а не в основном файле reducer.js

1 Ответ

0 голосов
/ 25 апреля 2019

Есть несколько способов сделать это, но мне лично нравится использовать библиотеку axios.Axios, по сути, просто помогает сделать запрос API и разобрать данные обратно из API в json.

В вашем файле actions.js.

export const authenticateUser = () => {
 return (dispatch, getState) => {
    //get the token from the reducer 
    const jwtToken = getState().jwtTokenReducer.tokenKey
    axios.post("/api/authenticate-user", jwtToken) //jwtToken passed into request
       .then((res) =>){
           dispatch({
              type: "AUTHENTICATE_USER",
              payload: res.data
           })
       }
       .catch((errors) => {
            dispatch({
               type: "ERRORS",
               payload: errors.response.data
            })
        })
 }
}

Так что взгляните на приведенный выше синтаксис,Обычно, когда вы определяете создателя действия, вы устанавливаете функцию, которая возвращает действие (объект).Но благодаря redux-thunk теперь вы можете настроить создателей действий так, чтобы они возвращали функции с аргументом dispatch.

Таким образом, в вашей возвращаемой функции вы можете определить определенную логику, например, сделать запрос к API, как мы делали там.Затем мы можем взять эти данные с помощью обработчика обещаний .then и использовать его в качестве полезной нагрузки для действия, которое мы явно отправили бы нашим редукторам.

...