【发布时间】:2021-07-09 13:14:24
【问题描述】:
如何在我的应用程序中访问上下文?我遇到了一个 react-router 和 redux 错误,我没有从状态中获取我的路由路径,因此我没有得到 match.props,所以我可以设置路径。我的目标是使用上下文来设置我的路线路径。
【问题讨论】:
标签: reactjs redux react-redux react-router context-api
如何在我的应用程序中访问上下文?我遇到了一个 react-router 和 redux 错误,我没有从状态中获取我的路由路径,因此我没有得到 match.props,所以我可以设置路径。我的目标是使用上下文来设置我的路线路径。
【问题讨论】:
标签: reactjs redux react-redux react-router context-api
在 Redux 中存储导航状态通常不是一个好主意。
您可以使用挂钩 useHistory、useLocation、useParams 和 useRouteMatch 从 react-router 上下文访问数据。
可能这就是你想要的,它返回当前路径,如"/users/joe":
const {pathname} = useLocation();
如果您想要与 Route 匹配的路径模板,例如 "/users/:username",那么您可以使用:
const {path} = useRouteMatch();
【讨论】:
useLocation 和useRouteMatch 对于当前页面是动态的。您可以创建一个使用这些的自定义挂钩,但我不确定您的实际目标是什么。