我正在尝试在redux中使用connect作为
连接(mapstate ..,mapdis ..)(withstyles(dashboardstyle)(dashboard)
以上工作正常,但我还需要添加withRouter。 变化以下给出错误 连接(mapstate ..,mapdis ..)(withstyles(仪表板样式),withrouter(仪表板))
每当我添加它时,都会出现诸如无法将类用作函数的异常。 任何想法如何解决
答案 0 :(得分:6)
您将需要重新安装:
npm i -s recompose
然后在您的组件中:
import compose from 'recompose/compose'
export default compose(
withStyles(styles),
connect(mapStateToProps, mapDispatchToProps)
)(withRouter(Dashboard))
答案 1 :(得分:2)
withStyles(styles)
的返回值是多少?我怀疑这是一个“高阶组件”(HOC),该函数希望传递给React组件进行包装,并返回一个React组件。如果是这样,那么您真的希望您的呼叫看起来像这样:
export default withStyles(styles)(
connect(mapStateToProps, mapDispatchToProps)(withRouter(Dashboard))
)
但是,该代码非常丑陋,并且随着您添加更多的HOC会迅速变得更糟,这就是Recompose suggestion是更好的方法的原因。 (但我想补充一些背景信息,以使读者了解是什么导致了OP中的问题。)