react-router-dom@6 不浏览不显示页面

react-router-dom@6 does not browse and does not display pages

我开始了一个新项目,并决定使用 react-router-dom@6 在我的页面之间导航。 我做了安装和配置,但导航不工作,我找不到问题。 我需要在访问“/”时显示“主页”页面,在访问“/profile”时显示配置文件页面。 Name 目前 localhost:3000 只显示一个空白页面,如“/home”和“/profile”。 我没有发现问题。

Index.js

/* eslint-disable react/jsx-filename-extension */
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import './i18n';
ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root'),
);
reportWebVitals();

App.js

/* eslint-disable react/react-in-jsx-scope */
/* eslint-disable react/jsx-filename-extension */
import React from 'react';
import { BrowserRouter } from 'react-router-dom';
import Routes from './routes';

function App() {
  return (
    <BrowserRouter>
      <Routes />
    </BrowserRouter>
  );
}

export default App;

routes.js

/* eslint-disable linebreak-style */
/* eslint-disable no-unused-vars */
/* eslint-disable linebreak-style */
/* eslint-disable react/react-in-jsx-scope */
/* eslint-disable react/jsx-filename-extension */
/* eslint-disable linebreak-style */
import React from 'react';
import {
  Routes,
  Route,
} from 'react-router-dom';
import Home from './pages/home';
import Profile from './pages/profile';

function MainRoutes() {
  return (
    <Routes>
      <Route path="/" element={<Home />} />
      <Route path="/profile" element={<Profile />} />
    </Routes>
  );
}

export default MainRoutes;

Home.jsx

/* eslint-disable linebreak-style */
import { useTranslation } from 'react-i18next';
import React from 'react';

const { t } = useTranslation();

function Home() {
  return (
    <h1>
      {t('home.title')}
      ;
    </h1>
  );
}

export default Home;

Profile.jsx

/* eslint-disable linebreak-style */
import { useTranslation } from 'react-i18next';
import React from 'react';

const { t } = useTranslation();

function Profile() {
  return (
    <h1>
      {t('home.title')}
      ;
    </h1>
  );
}

export default Profile;

package.json

{
  "name": "bruno-profile",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.14.1",
    "@testing-library/react": "^12.0.0",
    "@testing-library/user-event": "^13.2.1",
    "babel-eslint": "^10.1.0",
    "i18next": "^21.6.10",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-i18next": "^11.15.3",
    "react-router-dom": "^6.2.1",
    "react-scripts": "5.0.0",
    "web-vitals": "^2.1.0"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "eslint": "^8.8.0",
    "eslint-config-airbnb": "^19.0.4",
    "eslint-plugin-import": "^2.25.4",
    "eslint-plugin-jsx-a11y": "^6.5.1",
    "eslint-plugin-react": "^7.28.0",
    "eslint-plugin-react-hooks": "^4.3.0"
  }
}

您应该在 React 组件主体内调用 useTranslation() 挂钩,您必须在 Home.jsx 和 Profile.jsx.

两个版本中更改它
function Home() {
  const { t } = useTranslation();
  return <h1>{t("home.title")};</h1>;
}