连接和withRouter问题

时间:2019-01-18 02:42:59

标签: javascript reactjs redux react-redux frontend

我正在为我的项目使用Redux和React。我在App.js中有一些路由。我还在项目的react-redux中使用connect函数。为了防止更新阻止问题,我通常以这种方式包装组件

withRouter(connect(mapStateToProps, mapDispatchToProps)(App)),

但是,如果我更改了withRouter的顺序并连接它不起作用:

connect(mapStateToProps, mapDispatchToProps)(withRouter(App))

我有console.log App.js中的道具。它已经收到位置和历史道具。我正在弄清楚订单为何重要的背后理论?

4 个答案:

答案 0 :(得分:6)

如果仍然有问题,那么请跟随这个人

const ShowTheLocationWithRouter = withRouter(Login);

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

答案 1 :(得分:3)

您可以将其与redux库中的方法compose一起使用。

导出默认撰写文件(   与路由器,   connect(mapStateToProps,mapDispatchToProps) )(App);

答案 2 :(得分:3)

您可以通过两种方式做到这一点,

正确的方法:

withRouter(connect(mapStateToProps, mapDispatchToAction)(App));

使用此功能,您将可以在mapStateToProps中使用路由器道具,例如历史记录,比赛等。

第二种方式:

connect(mapStateToProps, mapDispatchToAction)(withRouter(App));

使用此功能,您将无法获得withRouter道具

答案 3 :(得分:1)

您能否提及这个https://reacttraining.com/react-router/core/api/withRouter,它清楚地说明,它反之亦然