重新加载后,私人路由重定向到授权开始之前的 /login,因为初始redux状态对它们两者都是假的。
这些是路由器的日志:
PrivateRoute.js:16加载:false isAuthenticated:false
PrivateRoute.js:16加载:true isAuthenticated:false
PrivateRoute.js:16加载:false isAuthenticated:true
它工作正常,我只需要一种方法来区分初始状态和非认证用户。
isLoading ?
到
isAuthenticated === null ?
(下面是路由器)
在需要私密路线之前,一切似乎都很好。当调试器位于if语句时,所有内容再次冻结。
这是我在这里找到的私人路线组件
import React from "react";
import { Route, Redirect } from "react-router-dom";
import { connect } from "react-redux";
import Spinner from "../../components/Spinner";
const PrivateRoute = ({
component: Component,
isLoading,
isAuthenticated,
...rest
}) => (
<Route
{...rest}
render={props =>
isLoading ? (
<Spinner />
) : isAuthenticated ? (
<Component {...props} />
) : (
<Redirect
to={{ pathname: "/login", state: { from: props.location } }}
/>
)
}
/>
);
const mapStateToProps = state => ({
isLoading: state.auth.isLoading,
isAuthenticated: state.auth.isAuthenticated
});
export default connect(mapStateToProps)(PrivateRoute);
我花了大约5个小时才意识到我忘了在旋转器中导入一些东西。。。谢谢大家的努力
使用redux和反应路由器,我想访问路由指定的组件以外的组件上的路由参数。 我已经对react-router、redux和react-router-redux进行了如下设置,我想从我的redux存储访问reportId参数。 我已经尝试连接react-redux路由器来存储路由状态,但是我发现除了活动路由的完整路径之外,redux内部没有任何有用的存储。这让我可以选择从redux中的路径解析出re
我有一个简单的(目前)应用程序,使用react router和redux,我想为它添加国际化功能。 我已经安装了npm包,并且能够安装和运行提供的示例。我已经将适当的导入添加到我自己的应用程序中,并将国际化标签添加到根渲染方法中。 当我将I18nextProvider标记添加到render方法时,我得到了错误 找不到模块“react” 这并不是特别有用,尤其是因为如果我删除标签,react应用程序
在我的情况下,当使用从react-redux时,反应路由器不会将我的反应组件视为有效组件。并且有一个警告:失败proType:无效prop提供给 Main.js
react&React-Router的新功能。我正在使用react-router-4 我有以下组件-login-home-header-sidebar-content 登录组件没有标题或侧栏。 这就是我的路由 应用程序JS 然后在我的Home组件中,我有侧边栏和内容。 home.js呈现方法 侧边栏组件有一个链接,该链接具有“to”值“/home/dashboard”。 不幸的是,这并不奏效。单击
我正在使用react路由器v4和redux,如果用户未登录,我想使用私有和受保护的路由重定向。 我有一个路由组件: 它是这样实现的: 这是私人路线: 传递prop的最佳方式是什么,如果我连接Routes组件并从那里传递是否可以,或者应该从其他地方传递,或者连接需要它的每个组件并从那里读取?此外,这种方法如何处理嵌套路由,如?谢谢
我正在尝试将react router从v3升级到v4,运行应用程序时出现以下错误: 减速器: 商店: 索引:从“React”导入React; 路线: 应用程序: 我不知道我错过了什么才能让它发挥作用 **注意:即使我只有一个路由并呈现静态组件(带文本的单个div),我仍然会看到此错误