Javascript React路由器Dom组件在App.js中呈现,但不作为单独的组件
我正在试图弄清楚React路由器Dom是如何工作的,但遇到了一个我甚至不知道如何解决的问题 如果,在App.js中,我有这个代码段,那么所有内容都会在各个部分之间呈现和导航,很好Javascript React路由器Dom组件在App.js中呈现,但不作为单独的组件,javascript,reactjs,url-routing,react-router-dom,Javascript,Reactjs,Url Routing,React Router Dom,我正在试图弄清楚React路由器Dom是如何工作的,但遇到了一个我甚至不知道如何解决的问题 如果,在App.js中,我有这个代码段,那么所有内容都会在各个部分之间呈现和导航,很好 <Switch> <Route path='/login-user' component={UserLoginForm} /> <Route path='/login-database' component={LoginDat
<Switch>
<Route path='/login-user' component={UserLoginForm} />
<Route path='/login-database' component={LoginDatabaseSelect} />
<Route path='/login-project' component={LoginProjectSelect} />
<Redirect path='/' exact to='/login-user' />
</Switch>
然而,这不是正确的方法,我正试图这样做:
创建为此引用的其他组件
<Switch>
<Route path='/login' component={LoginSequence} />
<Redirect path='/' exact to='/login' />
</Switch>
在登录顺序中,代码为:
import React from 'react';
import { Route, Redirect, Switch } from 'react-router-dom';
import UserLoginForm from "./LoginSequence/loginUserPass";
import LoginDatabaseSelect from "./LoginSequence/loginDatabaseSelect";
import LoginProjectSelect from "./LoginSequence/loginProjectSelect";
class LoginSequence extends React.Component {
render () {
console.log('Login Sequence')
return (
<div>
<h1>Login Sequence</h1>
<Route path='/login-user' component={UserLoginForm} />
<Route path='/login-database' component={LoginDatabaseSelect} />
<Route path='/login-project' component={LoginProjectSelect} />
<Redirect path='/login' exact to='/login-database' />
</div>
)
}
}
export default LoginSequence;
从“React”导入React;
从“react router dom”导入{Route,Redirect,Switch};
从“/LoginSequence/loginUserPass”导入UserLoginForm;
从“/LoginSequence/LoginDatabaseSelect”导入LoginDatabaseSelect;
从“/LoginSequence/LoginProjectSelect”导入LoginProjectSelect;
类LoginSequence扩展了React.Component{
渲染(){
console.log('Login Sequence')
返回(
登录顺序
)
}
}
导出默认登录顺序;
但是,这个组件甚至似乎没有被调用,因为console.log不会向console输出任何内容。这意味着没有任何东西在渲染,也没有调用它
有人能告诉我为什么这不起作用吗
编辑:我在调用LoginSequence的代码片段中修复了From并将其更改为Path,因为它没有任何效果,但Path似乎是执行此操作的正常方式。在重定向中将From更改为Path
在重定向中从更改为路径
不要使用重定向使用路由并调用要渲染的组件
<Switch>
<Route path='/login-user' component={UserLoginForm} />
<Route path='/login-database' component={LoginDatabaseSelect} />
<Route path='/login-project' component={LoginProjectSelect} />
<Route path='/' exact component={login-user} />
</Switch>
不要使用重定向使用路由并调用要渲染的组件
<Switch>
<Route path='/login-user' component={UserLoginForm} />
<Route path='/login-database' component={LoginDatabaseSelect} />
<Route path='/login-project' component={LoginProjectSelect} />
<Route path='/' exact component={login-user} />
</Switch>
与几个人交谈后,看到了更多的例子,一些事情变得更加清晰,解决了这个问题 在App.js中:
<Switch>
<Route path='/login' component={LoginSequence} />
<Redirect path='/' exact to='/login' />
</Switch>
在和几个人交谈之后,看到了更多的例子,一些事情变得更加清晰,解决了这个问题 在App.js中:
<Switch>
<Route path='/login' component={LoginSequence} />
<Redirect path='/' exact to='/login' />
</Switch>
似乎没有任何效果。我将重定向到正确的页面(例如/login user),但是,如果通过LoginSequence调用,则不会呈现组件部分。“Login Sequence”(在Login Sequence组件中)的console.log消息也不会触发,但似乎没有任何效果。我将重定向到正确的页面(例如/login user),但是,如果通过LoginSequence调用,则不会呈现组件部分。“Login Sequence”(在Login Sequence组件中)的console.log消息也没有触发。@soufianboutahlil它没有:(不确定重定向上下文中“发件人”和“路径”之间的区别是什么,但在这两种情况下,所有内容都仍然是重定向的,只是在调用LoginSequence组件时,它实际上并不呈现任何内容,而是指向它应该位于的正确页面的链接。@SoufianeBoutahlil它没有:(不确定重定向上下文中from和path之间的区别是什么,但在这两种情况下,所有内容都是重定向的,只是在调用LoginSequence组件时,它实际上并不呈现任何内容,而是呈现到它应该位于的正确页面的链接。我看到有一个登录用户组件,它包含什么?我的理解是它必须是定义和导入的东西。我看到有一个登录用户组件,它包含什么?我的理解是它必须是定义和导入的东西。