REACT Uncaught TypeError .then 不是函数 [英] REACT Uncaught TypeError .then is not a function
本文介绍了REACT Uncaught TypeError .then 不是函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在我的 react 组件中执行这样的功能:
i'm doing function in my react component like this :
const Logged = (props) => {
const doLogout = () => {
props.logout().then(() => browserHistory.push('/'));
}
return(
<IconMenu
{...Props}
iconButtonElement={
<IconButton><MoreVertIcon /></IconButton>
}
targetOrigin={{horizontal: 'right', vertical: 'top'}}
anchorOrigin={{horizontal: 'right', vertical: 'top'}}
>
<MenuItem primaryText="Sign out"
onTouchTap={doLogout}
/>
</IconMenu>
)
};
我已经将 dispatch 包装在组件中并连接它.
i already wrap the dispatch in the component and connect it.
const mapDispatchToProps = (dispatch) => {
return {
logout: () => (
dispatch(logoutUser)
)
}
}
这是我的操作:
export function logoutUser(){
return (dispatch) => {
return new Promise((resolve) => {
dispatch({
type : LOGOUT_USER,
});
resolve();
})
}
};
这是我的减速器:
case LOGOUT_USER :
return Object.assign({}, state, {autenticated : false});
我总是遇到这个错误
未捕获的类型错误:props.logout(...).then 不是函数在 Object.doLogout [作为 onTouchTap](在
Uncaught TypeError: props.logout(...).then is not a function at Object.doLogout [as onTouchTap] (eval at
推荐答案
我想你的意思
function mapDispatchToProps(dispatch) {
return {
logout: logoutUser(dispatch)
};
}
export function logoutUser(dispatch) {
return () => {
return new Promise((resolve) => {
dispatch({
type: LOGOUT_USER,
});
resolve();
});
};
}
虽然看起来没有任何异步发生,所以没有理由等待任何事情.
Although it doesn't look like there's anything asynchronous happening, so no reason to wait for anything.
这篇关于REACT Uncaught TypeError .then 不是函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文