TypeError:在执行动作时分派

时间:2020-04-29 02:39:51

标签: reactjs react-native redux react-redux

在此操作中,用户注销我的应用程序后将其作为反应导出

export const logoutUser = () => {
  return dispatch => {
    dispatch(
      {
        type: LOGOUT_USER
      }
    )
      .then(() => {
        logoutUserSuccess(dispatch, )
      })
      .catch((err) => {
        logoutUserError(err, dispatch)
      })
  }
}

const logoutUserSuccess = (dispatch) => {
  dispatch(
    {
      type: LOGOUT_USER_SUCCESS
    }
  )
  AsyncStorage.removeItem('@token_jwt')
  console.log('saiu')
  Actions.loginScreen()
}

const logoutUserError = (err, dispatch) => {
  dispatch(
    {
      type: LOGOUT_USER_ERROR
    }
  )
  Alert.alert('Erro ao sair da conta')
  console.log(err)
}

是我的减速器

case LOGOUT_USER:
return {
    ...state
}
        case LOGOUT_USER_SUCCESS:
return {
    INITIAL_STATE
}
        case LOGOUT_USER_ERROR:
return {
    ...state
}

是我要注销的屏幕

 onLogout() {
      this.props.logoutUser()
  }

const mapStateToProps = state => (
  {
    email: state.Authentication.email
  }
)

export default connect(mapStateToProps, { logoutUser })(Home)

返回以下错误

Erro

我将电子邮件放在mapStateToProps上,因为我不知道如何将其留空,对我来说重要的是注销

1 个答案:

答案 0 :(得分:1)

您可以尝试创建一个mapDispatchToProps函数,并从该函数内部调度动作logoutUser并将其作为第二个参数传递给connect

这样做,您可以在LogoutUser函数中从mapDispatchToProps调用onLogout

import {logoutUser} from './youractions.js'

onLogout() {
  this.props.LogoutUser();
}

const mapDispatchToProps = (dispatch) => ({
  LogoutUser: () => dispatch(logoutUser()),
});

export default connect(null, mapDispatchToProps)(Home);