【发布时间】:2020-03-22 06:21:21
【问题描述】:
你好,我现在开始反应,我有点困惑,我正在使用路由/私有路由,所以我创建了一个组件文件夹,我将在其中包含我的登录组件和我的登录 /index.js我在其中导入此组件的文件夹,但我毫无疑问有什么更好的方法来做到这一点:
我的 app.js:
import React, { Component } from 'react';
import './App.css';
import Routes from './routes';
function App() {
return (
<Routes/>
);
}
export default App;
我的路线 js:
export default function Routes(){
return(
<BrowserRouter>
<Switch>
<Route path="/" exact component = {Login}/> //só chama rota se o caminho for exato;
<PrivateRoute path="/home" component = {DashBoard}/>
</Switch>
</BrowserRouter>
);
}
我的组件/登录表单:
import React, { Component } from 'react';
class LoginForm extends Component {
constructor(props){
super(props);
this.state = {
login:'',
password:'',
errors: {},
isLoading: false
};
this.onSubmit = this.onSubmit.bind(this);
this.onChange = this.onSubmit.bind(this);
}
onSubmit(e){
e.preventDefault();
}
onChange(e){
this.state({[e.target.name]: e.target.value});
}
render() {
const { errors, login, password, isLoading } = this.state;
return (
<form onSubmit={this.onSubmit}>
<label for="login">Login</label>
<input type="text" id="login" value={login} error= {errors.login} onChange={this.onChange} placeholder="Informe seu login" />
<label for="password">Senha</label>
<input type="password" id="password" value={password} error= {errors.password} onChange={this.onChange} placeholder="Informe sua senha"/>
<button className="btnEnt" type="submit" disabled ={isLoading}>Entrar</button>
</form>
)
}
}
export default LoginForm;
现在我有疑问,因为我将在我的登录页面中的 index.js 文件中调用我的登录 comp
index.js
import React, { Component } from 'react';
import loginComp from '../../components/LoginForm';
class Login extends Component {
render() {
return (
<loginComp />
)
}
}
export default Login;
我没有错误,但它没有在屏幕上呈现任何内容
【问题讨论】:
-
如果它是您在 LoginForm 中创建的组件,则在导入时执行以下操作: import {loginComp} from "../../Components/LoginForm" 这称为解构 -
从 "../Components/pageName" 导入 LoginPage 并使用
代替 这将解决您的问题 -
@Ayushi Keshiri 你是什么意思我不明白你能回答吗?让我投票。
标签: javascript reactjs