如何在react / redux中引用存储?

时间:2017-07-04 12:58:42

标签: reactjs react-redux react-universal

在我的reactjs-universal组件中,我写了这个:

const mapStateToProps = (store) => {
  return {
    cars: store
  }
}

export default connect(mapStateToProps)(SearchForm)

在同一个组件中,我想发送一个像:

这样的动作
 store.dispatch({type: 'SHOWDETAIL', data: 'hi'});

当这个运行时,我得到:

Uncaught TypeError: _create2.default.dispatch is not a function

是否可以在我的组件中以某种方式获取对商店的引用,以便我可以发送操作?

2 个答案:

答案 0 :(得分:3)

connect将调用mapStateToProps作为参数而不是商店。

在您的情况下,您似乎不需要引用商店,并且使用连接将地图分派到道具就足够了。

const mapStateToProps = (store) => {
  return {
    cars: store
  }
}

const mapDispatchToProps = dispatch => {
  return {
    action : () => dispatch({
      type : 'ACTION_NAME'
    })
  }
}
export default connect(mapStateToProps, mapDispatchToProps)(SearchForm)

如果你真的想要商店,你应该从你创建它的地方导出它并将它导入你需要的地方,connect通过商店的目的不是。

答案 1 :(得分:0)

您不会获得对商店对象的引用,而是对商店内部的状态。 connect函数的第二个参数是mapDispatchToProps。这使您可以访问调度功能。