我在我的反应本机代码中设置了redux-thunk。
在mapDispatchToProps中,我有:
const mapDispatchToProps = dispatch => {
return {
login: (state, navigator) => dispatch({
type: "USER",
payload: loginFunc(state, navigator)
}),
}'
}登录函数是一个firebase函数,它返回最终返回我需要的对象的承诺链。
然而,在我的还原器中,我的有效载荷似乎是一个承诺或一些古怪的对象。看上去:
{
a: someVal,
b: sommeOtherVal,
c: someMoreVal,
...ValsUpToI.
i: {
// The values I actually need show up
}这把我搞砸了,因为当我尝试执行payload.myValue时,undefined处于redux状态。我不认为只做payload.i是不安全的,因为这可能是一些promise或async问题,对吗?我以后还能做别的什么吗?
发布于 2018-04-01 08:06:41
使用异步操作方法执行剩余文件中提到的基于承诺的函数API调用。
const mapDispatchToProps = dispatch => {
return {
login: (state, navigator) => {
return loginFunc(state, navigator).then(
response => dispatch({
type: "USER",
payload: response
}),
error => console.log('An error occurred.', error)
)
}
}这样,您可以调用基于承诺的功能,并正确地利用响应或错误。
https://stackoverflow.com/questions/49595715
复制相似问题