我的路由无法使用Usenavigate工作。我该如何解决这个问题

发布于 2025-02-12 09:36:08 字数 3011 浏览 0 评论 0原文

嘿,有人可以解释我的代码中有什么问题。我正在尝试路由路径,并使用Usenavigate链接它。但是它不起作用,URL发生了变化,但输出与众不同。 中显示我的代码

app.js。

import React from 'react'
import { Routes, Route } from 'react-router-dom'
import Apps from './Apps'
import Lists from './Lists'


function App() {
  return (
   <div className='App'>
    <Routes>
      <Route path='/' element={<Apps/>}/>
      <Route path='/lists' element={<Lists/>}/>
    </Routes>
    </div>
  )
}

export default App

将在此文件

import React, { useState } from "react";
import "./App.css";
import Form1 from "./form1";
import Form2 from "./form2";
import { Box, Paper, Button } from "@mui/material";
import AccountCircleIcon from "@mui/icons-material/AccountCircle";
import { useNavigate } from "react-router-dom";
import ArrowForwardIcon from "@mui/icons-material/ArrowForward";

function Apps() {
  const [formData, setFormData] = useState({
    name: "",
    gender: "",
    address: "",
    hobby: "",
    email: "",
  });

  let arr = [];

  const handleOnChange = () => {
    arr = [formData];
    console.log("arr", arr);
  };

  let navigate = useNavigate();

  return (
    <>
      <React.Fragment>
        <Box
          sx={{
            display: "flex",
            flexWrap: "wrap",
            "& > :not(style)": {
              m: "auto",
              width: 250,
              height: 485,
              marginTop: "50px",
            },
          }}
        >
          <Paper elevation={20}>
            <div className="App">
              <AccountCircleIcon
                fontSize="large"
                style={{ color: "#1976D2", marginTop: "10px" }}
              />
              <h1
                style={{
                  color: "#1976D2",
                  marginTop: "10px",
                  marginBottom: "10px",
                }}
              >
                Form Data
              </h1>
              <Button onClick={() => navigate("/lists")} variant="contained">
                <ArrowForwardIcon />
                List
              </Button>

              <Form1 formData={formData} setFormData={setFormData} />

              {formData.gender === 2 && (
                <Form2 formData={formData} setFormData={setFormData} />
              )}
              <div style={{ marginTop: "10px" }}>
                <Button
                  variant="contained"
                  type="submit"
                  onClick={handleOnChange}
                >
                  Submit
                </Button>
              </div>
            </div>
          </Paper>
        </Box>
      </React.Fragment>
    </>
  );
}

export default Apps;

import React from 'react'

function Lists() {
  return (
    <div>Lists</div>
  )
}

export default Lists

Hey can someone please explain what is wrong in my code. i am trying to Route my path and link it using useNavigate. but its not working, URL changed but output was as it is. i will show my code

APP.js -- in this file i am using Routes, Routes\

import React from 'react'
import { Routes, Route } from 'react-router-dom'
import Apps from './Apps'
import Lists from './Lists'


function App() {
  return (
   <div className='App'>
    <Routes>
      <Route path='/' element={<Apps/>}/>
      <Route path='/lists' element={<Lists/>}/>
    </Routes>
    </div>
  )
}

export default App

APPS.js -- in this file i was using useNavigate

import React, { useState } from "react";
import "./App.css";
import Form1 from "./form1";
import Form2 from "./form2";
import { Box, Paper, Button } from "@mui/material";
import AccountCircleIcon from "@mui/icons-material/AccountCircle";
import { useNavigate } from "react-router-dom";
import ArrowForwardIcon from "@mui/icons-material/ArrowForward";

function Apps() {
  const [formData, setFormData] = useState({
    name: "",
    gender: "",
    address: "",
    hobby: "",
    email: "",
  });

  let arr = [];

  const handleOnChange = () => {
    arr = [formData];
    console.log("arr", arr);
  };

  let navigate = useNavigate();

  return (
    <>
      <React.Fragment>
        <Box
          sx={{
            display: "flex",
            flexWrap: "wrap",
            "& > :not(style)": {
              m: "auto",
              width: 250,
              height: 485,
              marginTop: "50px",
            },
          }}
        >
          <Paper elevation={20}>
            <div className="App">
              <AccountCircleIcon
                fontSize="large"
                style={{ color: "#1976D2", marginTop: "10px" }}
              />
              <h1
                style={{
                  color: "#1976D2",
                  marginTop: "10px",
                  marginBottom: "10px",
                }}
              >
                Form Data
              </h1>
              <Button onClick={() => navigate("/lists")} variant="contained">
                <ArrowForwardIcon />
                List
              </Button>

              <Form1 formData={formData} setFormData={setFormData} />

              {formData.gender === 2 && (
                <Form2 formData={formData} setFormData={setFormData} />
              )}
              <div style={{ marginTop: "10px" }}>
                <Button
                  variant="contained"
                  type="submit"
                  onClick={handleOnChange}
                >
                  Submit
                </Button>
              </div>
            </div>
          </Paper>
        </Box>
      </React.Fragment>
    </>
  );
}

export default Apps;

Lists.js -- which i want to Route as result

import React from 'react'

function Lists() {
  return (
    <div>Lists</div>
  )
}

export default Lists

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文