首页 > 解决方案 > 我们可以用 4Catalyzer/found 的 'withRouter' HOC 包装非反应函数吗?

问题描述

这是我试图运行的代码:

import { withRouter } from 'found';

const routeToUrl = props => props.router.push(props.path);

export default withRouter(routeToUrl);

其中 withRouter 是 HOC fromcatalyzer/found包装现有组件类或函数并注入matchrouter道具,如上面的路由组件。您可以使用此 HOC 创建在事件处理程序中以编程方式导航的组件。 https://github.com/4Catalyzer/found#programmatic-navigation

我有点不清楚 的含义route components。不是routeToUrl路由组件是它不起作用的原因吗?

收到错误:

react.development.js?99ee:428 Uncaught (in promise) TypeError: Cannot set property 'props' of undefined
    at Component (react.development.js?99ee:428)
    at withRouter(routeToUrl) (connectAdvanced.js?4805:109)

谢谢!

标签: javascriptreactjsreact-routerhigher-order-functions

解决方案


withRouter 需要上层上下文中的Router

您需要重定向组件还是只需要使用 location.path ?


推荐阅读