Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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 在专用路径中进行两次反应渲染_Reactjs_React Redux - Fatal编程技术网

Reactjs 在专用路径中进行两次反应渲染

Reactjs 在专用路径中进行两次反应渲染,reactjs,react-redux,Reactjs,React Redux,当我在渲染组件中运行console.log时,它会在chrome开发检查器中出现两次。这只发生在私人路线上 我试过在交换机里摆弄路由器,但都没用 App.js********** 类应用程序扩展组件{ render(){ 返回( //登录页面重定向到“/用户/仪表板” ); } } 导出默认值(App); index.js********* ReactDOM.render( , document.getElementById(“根”) ); privaterout.js**********

当我在渲染组件中运行console.log时,它会在chrome开发检查器中出现两次。这只发生在私人路线上

我试过在交换机里摆弄路由器,但都没用

App.js**********

类应用程序扩展组件{
render(){
返回(
//登录页面重定向到“/用户/仪表板”
);
}
}
导出默认值(App);
index.js*********

ReactDOM.render(
,
document.getElementById(“根”)
);
privaterout.js**********

import React,{Component}来自“React”;
从“react router dom”导入{Route,Redirect};
类PrivateRoute扩展组件{
状态={
认证:假
};
render(){
}
const{component:component,…rest}=this.props;
返回(
认证(
) : (
)
}
/>
);
}
}
使用KeyClope(PrivateRoute)导出默认值;

我只想控制台渲染组件中的任何东西一次。我认为这与我设置路由的方式有关,但我不确定。

请注意PrivateRoute组件的作用,但如果它在内部某处使用路由,则应使用path=“/user”属性,该属性可传递给PrivateRoute组件

<PrivateRoute path="/user" exact component={ Layout } />


您说过console.log会出现两次,您能更准确地说,它是用于特殊路由路径还是用于所有路由?什么是专用路由?如果您需要这方面的帮助,您需要提供更多信息。我们甚至看不到您试图控制台日志的内容。@OlivierBoisséPrivate route用于身份验证,只允许经过身份验证的用户访问这些引号,我将添加上面的代码。如果我从私有路径记录任何控制台,我将看到控制台出现twice@davirk21,在应用程序的初始启动时,您应该在Private Route中看到console 6次,因为您尝试渲染组件6次。当您尝试导航到专用路由时,不应看到日志。但是,您可以在PrivateRoute组件中重构代码。。构造函数(props){super(props);this.state={authenticated:false};}@davierk21,我看到您正在用高阶组件keydepot包装PrivateRoute,您真的需要它吗?一个可能的原因可能是您的高阶组件可能会重新呈现?私有路由用于身份验证,只允许经过身份验证的用户访问这些ruote,我将添加上面的代码。如果我从私有路由登录任何控制台,我将看到控制台出现两次。不幸的是,将精确添加到私有路由并不能解决此问题。我仍然看到任何console.log被记录了两次