#reactjs #switch-statement #react-router-dom
#reactjs #switch-statement #react-router-dom
Вопрос:
я хочу спросить, могу ли я использовать Switch из react-router-dom в подобном компоненте? потому что я ничего не получаю
import React from 'react';
//import { Link } from 'react-router-dom';
import { connect } from 'react-redux';
import { Router, Route, Switch } from "react-router-dom";
import { history } from '../_helpers'
import { userActions } from '../_actions';
import indexRoutes from "routes/index.jsx";
class HomePage extends React.Component {
componentDidMount() {
this.props.dispatch(userActions.getAll());
}
render() {
const { user, users } = this.props;
return (
<Router history={history}>
<Switch>
{indexRoutes.map((prop, key) => {
return <Route path={prop.path} key={key} component={prop.component} />;
})}
</Switch>
</Router>
);
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.1.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.1.1/umd/react-dom.production.min.js"></script>
и indexroutes имеют этот код
import Dashboard from "layouts/Dashboard/Dashboard.jsx";
var indexRoutes = [{ path: "/", name: "Home", component: Dashboard }];
export default indexRoutes;
и чтобы было понятно, я использую домашнюю страницу этого компонента в своем частном маршруте в моем app.JSX следующим образом
<Router history={history}>
<div>
<PrivateRoute exact path="/" component={HomePage} />
<Route path="/login" component={LoginPage} />
</div>
</Router>
и я вызываю свое приложение в index.js вот так :
import React from "react";
import ReactDOM from "react-dom";
import "bootstrap/dist/css/bootstrap.css";
import "assets/scss/paper-dashboard.scss";
import "assets/demo/demo.css";
import { Provider } from 'react-redux';
import { store } from './_helpers';
import { App } from './App';
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);
Комментарии:
1. Можете ли вы попробовать добавить маршрут с указанием пути
*
?2. вы сказали, я ничего не получаю — вы имеете в виду, что когда вы переходите по пути ‘/’, вы не можете видеть компонент панели мониторинга?
3. @MohitTilwani да, я получаю маршрут к панели мониторинга, но я не вижу ни одного компонента
4. @LorenzHenk я добавляю этот маршрут в свой компонент домашней страницы?
5. Вы добавляете это в маршрутизатор в качестве последнего маршрута.