如何在使用连接时不使用装饰器?

时间:2017-10-30 20:15:01

标签: reactjs redux react-router react-redux

我是新手做出反应& redux因此遇到了一个装饰器实现,现在想出如何根据我的要求进行模具制作。 以下是我遇到的语法,我需要将其转换为非装饰器形式:

@connect(
    state => ({
        authentication: state.authentication
    }),
    dispatch => bindActionCreators(LoginActions, dispatch)
)

我需要转换的表格是:

const mapStateToProps = state => {
  return {
    authentication: state.authentication
  };
};

const mapDispatchToProps = dispatch => {
  return {
    authenticateUser: (email, password) => dispatch(loginUser(email, password))
  };
};
export default connect(mapStateToProps, mapDispatchToProps)(LoginContainer);

2 个答案:

答案 0 :(得分:2)

这是你的syntex的非装饰形式。你甚至可以使用“Fat Arrow”功能来简化它

  function mapStateToProps(state, prop){
    return {
      authentication: state.authentication
    }
  }

  function mapDispatchToProps(dispatch){
    return {
      action: bindActionCreators(LoginActions, dispatch)
    }
  }

export default connect(mapStateToProps, mapDispatchToProps)(LoginContainer);

答案 1 :(得分:1)

我认为,解决问题的方法之一是(你可以使用mapDispatchToProps的简短表示法)

export default connect( state => {
   authentication: state.authentication
}, { loginUser })(LoginContainer);