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 Redux connect“;积木;使用react路由器redux进行导航_Reactjs_Redux_React Router_React Redux_React Router Redux - Fatal编程技术网

Reactjs Redux connect“;积木;使用react路由器redux进行导航

Reactjs Redux connect“;积木;使用react路由器redux进行导航,reactjs,redux,react-router,react-redux,react-router-redux,Reactjs,Redux,React Router,React Redux,React Router Redux,在使用react、redux和react router的应用程序中,我使用react router redux发布导航操作。我发现在带有connect的组件中包装路由会阻塞导航 我用CodeSandbox制作了一个示例来说明这个问题: 按原样,导航不起作用。但是,如果在./components/Routes.jsx中,则此行: export default connect(() => ({}), () => ({}))(Routes); 替换为: export default Ro

在使用react、redux和react router的应用程序中,我使用react router redux发布导航操作。我发现在带有connect的组件中包装路由会阻塞导航

我用CodeSandbox制作了一个示例来说明这个问题:

按原样,导航不起作用。但是,如果在./components/Routes.jsx中,则此行:

export default connect(() => ({}), () => ({}))(Routes);
替换为:

export default Routes;
它起作用了

你知道如何在一个组件中使用connect来包装路线而不中断导航吗?

请参阅react redux文档中的部分

如果将Routes.jsx导出更改为:

export default connect(() => ({}), () => ({}), null, { pure: false })(Routes);
它会起作用的

这是因为默认情况下connect()实现了shouldComponentUpdate, 假设您的组件将在给定 同样的道具和状态

路线更改,但道具不会更改,因此视图不会更新


您可以通过路由器hoc实现同样的效果。

不意味着重复

我用路由器这样的
修复了它

import { withRouter } from 'react-router-dom';


请参阅Redux,路由器集成文档

您是否遇到过警告消息:

警告:您无法更改

使用
路由器
反应路由器dom

我已经搜索了这么长时间,因为Redux正在重新创建我的App.jsx组件,该组件的父级为
,此警告只是冻结了我应用程序中的路由。我希望使用React/Redux组件,因为我需要将
authenticated
props传递给Route组件,并基于它重定向,非常简单

所以
从'react router dom'导入{withRouter}

并将连接到redux的组件环绕在以下位置:

使用路由器导出默认值(connect(mapstatetops)(App))

还有: 大多数情况下,如果您想与路由器通信,使用一些道具,将其他东西传递给路由器,获取历史记录、位置信息,并且您正在应用程序中使用Redux,请使用
withRouter
环绕此组件,您将可以作为道具访问这些属性

export default withRouter( connect(mapStateToProps)(App) );