Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在使用connect时不使用装饰器?_Reactjs_Redux_React Router_React Redux - Fatal编程技术网

Reactjs 如何在使用connect时不使用装饰器?

Reactjs 如何在使用connect时不使用装饰器?,reactjs,redux,react-router,react-redux,Reactjs,Redux,React Router,React Redux,我是react&redux新手,因此遇到了一个decorator实现,现在正在研究如何根据我的需求进行建模。 以下是我使用的语法,我需要将其转换为非装饰形式: @connect( state => ({ authentication: state.authentication }), dispatch => bindActionCreators(LoginActions, dispatch) ) 我需要转换成的形式是: const mapSt

我是react&redux新手,因此遇到了一个decorator实现,现在正在研究如何根据我的需求进行建模。 以下是我使用的语法,我需要将其转换为非装饰形式:

@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);

我认为,解决问题的方法之一如下(您可以使用mapDispatchToProps的简短符号)


我认为,解决问题的方法之一如下(您可以使用mapDispatchToProps的简短符号)


这是syntex的非装饰形式。您甚至可以使用“胖箭头”函数使其变得简单

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

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

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

这是syntex的非装饰形式。您甚至可以使用“胖箭头”函数使其变得简单

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

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

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