我目前正在try 实现一个hashrouter,但我得到了一个错误:没有路由匹配的位置"register"进入url localhost:3000/#register

我的索引.js:

      import React from 'react';
import ReactDOM from 'react-dom';
import {HashRouter} from 'react-router-dom'
// import './bootstrap/dist/css/bootstrap.min.css';
// import './bootstrap/dist/js/bootstrap.min';
import reportWebVitals from './reportWebVitals';
import App from "./App";

ReactDOM.render(

    <HashRouter>
          <App />
  </HashRouter>
            ,
  document.getElementById('root')
);


reportWebVitals(console.log);

我的apply.js:

import React, {Component, useEffect, useState} from 'react';
import {Routes, Route} from 'react-router'
import * as $ from 'jquery';
import Web3 from 'web3';
import 'bootstrap/dist/css/bootstrap.min.css';
// import './sketchy.min.css';

import { Navbar, Nav, Container, NavDropdown, Form,FormControl, Button, Row, Col, PageHeader } from 'react-bootstrap';

    function App() {
 
  return(
      <>
        <NavDom/>
          <Routes>
              <Route path='/register' element={<RegisterFormDom/>}/>
              <Route path='/' element={<HomeDom/>}/>

          </Routes>
      </>
  );

}

const HomeDom = ()=>{
  return(
     <Row>
        <Col>


        </Col>
      </Row>
  );
}
const NavDom = ()=>{//
  return(
      <Navbar collapseOnSelect expand="lg" bg="dark" variant="dark">
          <Container>
              <Navbar.Brand href="/">Bulls Marketplace</Navbar.Brand>
              <Navbar.Toggle aria-controls="responsive-navbar-nav" />
              <Navbar.Collapse id="responsive-navbar-nav">
                  <Nav className="me-auto">
                      <Nav.Link href="#register">Register</Nav.Link>
                      <Nav.Link href="#wallet">Wallet</Nav.Link>
                      <Nav.Link href="#wallet">My Services</Nav.Link>
                      <Nav.Link href="/store">Store</Nav.Link>
                  </Nav>
                  <Nav>
                      <Nav.Link to="#about">About</Nav.Link>

                  </Nav>
              </Navbar.Collapse>
          </Container>
      </Navbar>
  );
}
const RegisterFormDom = ()=>{
  return(
      <Row>
        <Col>
          <h3 className="sub-header">Register Player</h3>
          <form className="form-inline" role="form">
            <div className="form-group">
              <table>
                <tr>
                  <td><label htmlFor={"username"}>Username:</label></td>
                  <td>
                    <input className={"form-control"} id={"username"} name={"username"}/>

                  </td>
                </tr>
              </table>
            </div>
            <a href={"#"} className={"btn btn-primary"}>Register</a>
          </form>
        </Col>
      </Row>
  );
}

我也试过:

     return(
      <>
        <NavDom/>
          <Routes>
              <Route path='#register' element={<RegisterFormDom/>}/>
              <Route path='/' element={<HomeDom/>}/>

          </Routes>
      </>
  );

用散列代替"/".但是我得到了同样的结果.

不要介意web3的东西,这一切都是有效的.

HashRouter还在react router dom的v6中吗?

推荐答案

NavDom中的链接应该是react-router-dom链接103他们应该链接到应用程序正在呈现的页面.URL的最终结果大约是localhost:3000/#/register.

const NavDom = () => {
  return (
    <Navbar collapseOnSelect expand="lg" bg="dark" variant="dark">
      <Container>
        <Navbar.Brand as={Link} to="/">Bulls Marketplace</Navbar.Brand>
        <Navbar.Toggle aria-controls="responsive-navbar-nav" />
        <Navbar.Collapse id="responsive-navbar-nav">
          <Nav className="me-auto">
            <Nav.Link as={Link} to="/register">Register</Nav.Link>
            <Nav.Link as={Link} to="/wallet">Wallet</Nav.Link>
            <Nav.Link as={Link} to="/wallet">My Services</Nav.Link>
            <Nav.Link as={Link} to="/store">Store</Nav.Link>
          </Nav>
          <Nav>
            <Nav.Link as={Link} to="/about">About</Nav.Link>
          </Nav>
        </Navbar.Collapse>
      </Container>
    </Navbar>
  );
};

...

<NavDom/>
<Routes>
  <Route path="/register" element={<RegisterFormDom />} />
  <Route path="/" element={<HomeDom />} />
</Routes>

Edit hashrouter-no-routes-matched-location

Reactjs相关问答推荐

REACT路由DOM根据参数呈现不同的路由

一键MUI导出

react 挂钩-使用有效澄清

当useEffect和onClick处理程序都调用useCallback函数时,有没有办法对useEffect产生额外的影响?

如何在物料界面react 的多选菜单中设置最大 Select 数限制

Antd V5组件自定义主题

列表中的每个子项都应该有一个唯一的keyprops .在react 应用程序中

如何在不同的路由中渲染相同的页面组件(包括 getServerSideProps)

React 无效的钩子调用:如何避免嵌套钩子?

如何更改TimePicker中下拉菜单的背景 colored颜色 和字体 colored颜色 - MUI React

Mui DataGrid 在第二页和前一页上显示项目时出现问题

如何在 ChartJS 中创建此图表?在 NEXTjs 和 TSX 中

在 monorepo 内的工作区或库之间共享 redux 状态

如何将 DocuSign 控制台界面嵌入到 React 应用中

使用登录保护 React 中的 SPA 应用程序 - 为什么这种方法不起作用?

自动重新获取不起作用 - RTK 查询

ReactJs 行和列

如何在 react-router-dom v6 中实现监听功能?

在 redux 状态更改时更新react 按钮禁用状态

CORS 政策:无访问控制允许来源-AWS 和 Vercel