Я выполняю функцию в своем реагирующем компоненте следующим образом:
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>
)
};
я уже заворачиваю рассылку в компонент и подключаю.
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});
я всегда получал эту ошибку
Uncaught TypeError: props.logout(...).then не является функцией в Object.doLogout [как onTouchTap] (eval в
logoutUser
возвращает не обещание, а функцию; и он даже не вызывается, а только передаетсяdispatch
(результат которого возвращается и не является обещанием). 07.02.2017