Route не рендерит компонент при ручном вводе url адреса

121
06 апреля 2021, 16:30

Делаю небольшое SPA с несколькими страницами, навигацию выполняю средствами react-router. При клике на <Link /> страницы Route рендерит нужный компонент правильно, но при ручном вводе url - ftp сервер кидает ошибку. Роутинг происходит в <App> компоненте:

import React, {useState}  from 'react';
import clasess from './App.module.css';
import Header from './components/header/header'
import { SlideMenu } from "../src/components/slideMenu/SlideMenu"
import Hidden from '@material-ui/core/Hidden';
import { ThemeProvider } from '@material-ui/styles';
import theme from "./styles/theme"
import { Route } from 'react-router'
import routes from './routes';
function App() {
 return (
    <ThemeProvider theme={theme}>
      <div className={clasess.App}>
        <Header volume = {volume} toggleVolume = {toggleVolume} />
        <SlideMenu/>
        {
          routes.map((route, index) => (
            <Route path={route.path} component={route.component} key={index} />
          ))
        }
      </div>
    </ThemeProvider>
  );
}
export default App;
Answer 1

Проверьте настройки сервера - скорее всего это он 404 выдает и до реакта не доходит.

Например, если у вас приложение находится на урле /app/, то при /app/some-page/ на nginx'e такой код будет работать верно

 location ~ ^/app(/.*)?$ {

а такой падать

location ~ ^/app/$ {
READ ALSO
Найти определенный объект в массиве объектов?

Найти определенный объект в массиве объектов?

У меня есть массив объектовИх достаточно большое количество

101
Вопрос по DOM в JS

Вопрос по DOM в JS

У меня есть одна проблема с которой я очень часто сталкиваюсь при написании js кодаОбъясню на пример

105
На чистом js можно найти предка n-уровня?

На чистом js можно найти предка n-уровня?

Сейчас, чтобы найти нужного мне предка, я пишу elemparentElement

106