gpt4 book ai didi

javascript - Action 必须是普通对象。使用自定义中间件进行异步操作 - React Native Redux

转载 作者:行者123 更新时间:2023-11-30 20:19:42 24 4
gpt4 key购买 nike

一些背景:当我使用简单的 .then() 链接获取和分派(dispatch)响应时,我能够让一切正常工作。我现在遇到的错误是当我尝试使我的操作异步并在 promises 上使用 await 时。

注意:我使用的是 redux thunk。

Action .js:

export const onLoginPressed = async (params) => async (dispatch) => {
try {
const loginResp = await fetch("http://localhost:8000/api-token-auth/", {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(params)
})

let res = await loginResp.text();
if (response.status >= 200 && response.status < 300) {
let accessToken = res;
dispatch(storeToken(accessToken));
} else {
let error = res;
dispatch(failToken())
throw error;
}
} catch (e) {
console.log(e)
}

}

export const failToken = () => {
return {
type: FAIL_TOKEN
}
}

export const storeToken = (token) => {
return {
type: CREATE_TOKEN,
token: token
}
}

最佳答案

async 关键字将确保返回一个 promise,而您不想返回一个 promise,而是一个函数。

从第一个函数中删除 async 关键字,它将按预期工作。

export const onLoginPressed = (params) => async (dispatch) => {
// ...
}

关于javascript - Action 必须是普通对象。使用自定义中间件进行异步操作 - React Native Redux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51580380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com