javascript - 没有路线匹配位置 "/rewards-store"

标签 javascript reactjs react-native react-router

我的路由器 V6 有问题。路线未渲染。主页曾经包含所有产品,现在我看不到显示的任何产品,而且我还有指向网站每个部分的链接的代码,但没有出现。出现的错误是:

react_devtools_backend.js:4045 No routes matched location "/rewards-store-andrea-lopez-bravo"  
    at Routes (http://localhost:3000/rewards-store-andrea-lopez-bravo/static/js/vendors~main.chunk.js:32538:5)
    at Router
    at div
    at App (http://localhost:3000/rewards-store-andrea-lopez-bravo/static/js/main.chunk.js:423:63)
    at Router (http://localhost:3000/rewards-store-andrea-lopez-bravo/static/js/vendors~main.chunk.js:32471:15)
    at BrowserRouter (http://localhost:3000/rewards-store-andrea-lopez-bravo/static/js/vendors~main.chunk.js:31958:5)
    at AppProvider (http://localhost:3000/rewards-store-andrea-lopez-bravo/static/js/main.chunk.js:4188:5)
index.tsx:25 No routes matched location "/rewards-store" 

这是我的路由器:

import { Routes, Route } from "react-router-dom";
import { Home } from "../pages/Home";
import { History } from "../pages/History";
import { Points } from "../pages/Points";
import { NotFound } from "../components/notification/NotFound";

 
 export const Router  = () => {
  return (
    <Routes>
      <Route path="/" element={<Home />} />
      <Route path="/history" element={<History/>}/>
      <Route path="points" element={<Points/>}/>
      <Route path="NotFound" element={<NotFound/>} />
    </Routes>
  );
};

这是索引:

import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
import AppProvider from "./context/AppContext";
import { BrowserRouter } from "react-router-dom";

ReactDOM.render(
  <React.StrictMode>
    <AppProvider>
      <BrowserRouter>
        <App />
      </BrowserRouter>
    </AppProvider>
  </React.StrictMode>,
  document.getElementById("root")
);

应用程序上下文:

import React,{ useState } from "react";
 import { usePagination } from "../components/utils/pagination.jsx";


export const AppContext = React.createContext();


export default function AppProvider({ children }) {
    const [user,setUser] = useState({})
    const [points, setPoints] = useState(0)
    const [products, setProducts] = useState([])
    const [reedemStatus, setReedemStatus] = useState({})
    const [history, setHistory] = useState([])

    const paginationList = usePagination(products, 16)
    const paginationHistoryList = usePagination(history, 16)

    const totalProducts = products.length
    const totalHistory = history.length

    const handlerAddPoint =(value)=>{
        const newUser = {...user}
        newUser.points = user.points + value
        setUser(newUser)
      }
    
      const handlerSubtractPoint =(points)=>{
        const newUser = {...user}
        newUser.points = user.points - points
        setUser(newUser)
      }
    return(
        <AppContext.Provider value={{user,
            setUser,  
            handlerAddPoint, 
            handlerSubtractPoint, 
            points,
            setPoints,  
            products, 
            setProducts, 
            totalProducts,
            paginationList,
            reedemStatus, 
            setReedemStatus,
            history,
             setHistory, 
             paginationHistoryList,
             totalHistory}}>
             {children}
        </AppContext.Provider>
    );
}

App.js

import React, { useEffect, useContext } from "react";
import "./App.css";
import { Header } from "./components/header/Header";
import { Nav } from "./components/nav/Nav.jsx";
import { getUser } from "./services/users";
import { AppContext } from "./context/AppContext";
import { Notification } from "./components/notification/Notification";
import { Router } from "./routers/Router";

function App() {
  const { setUser } = useContext(AppContext);
  useEffect(() => {
    getUser().then((user) => {
      setUser(user);
    });
  }, [setUser]);
  return (
    <div className="App">
      <Notification />
      <Nav />
      <Header />
      <Router />
    </div>
  );
}

export default App;

在 menu.jsx 中,链接未呈现:

import "./Menu.css";
import React from "react";
import { Link } from "react-router-dom";

export const Menu =()=>{
    return(
        <ul className="menu flex-row">
             <li className="pink-line"><Link className="normal-text" to="/acamica-rewards-store/">Home</Link></li>
             <li className="pink-line"><Link className="normal-text" to="/acamica-rewards-store/points">Add points</Link></li>
             <li className="pink-line"><Link className="normal-text" to="/acamica-rewards-store/history">History</Link></li>
         </ul>
    )
 }

最佳答案

在您的路由器中,始终将主路由放在最底部!

<Routes>
      <Route path="/history" element={<History/>}/>
      <Route path="points" element={<Points/>}/>
      <Route path="NotFound" element={<NotFound/>} />
      <Route path="/" element={<Home />} />
</Routes>

或者确保主路径准确无误!

<Routes>
      <Route exact path="/" element={<Home />} />
      <Route path="/history" element={<History/>}/>
      <Route path="points" element={<Points/>}/>
      <Route path="NotFound" element={<NotFound/>} />
</Routes>

关于javascript - 没有路线匹配位置 "/rewards-store",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70403175/

相关文章:

javascript - Javascript中的封装与继承

reactjs - 如何用 Jest 测试 useParam() 函数

javascript - React-Native 无法解析字体模块

reactjs - React 不将 props 传递给组件

react-native - React Native 在 SectionList 中获得顶行

reactjs - 命令 `brew install watchman` 运行 `chmod` 但最终安装失败

javascript - 在 Ember.js 中返回数据之前处理数据

javascript - 使用 FullCalendar 拖放事件

javascript - 在 SVG 中绘制 DOM 对象时如何在 Canvas 中使用 Google 字体?

reactjs - org-reveal 标题幻灯片的自定义