我一直在try 显示我的Reaction应用程序的注册组件,它由注册表单组成.然而,我一直未能成功,YouTube上的视频让我更困惑.下面是我的App.JS,其中我有许多呈现的组件:

import React, { useState } from 'react';
import { createBrowserRouter, Router, Route, createRoutesFromElements, RouterProvider } from "react-router-dom";
import FirstSection from './components/FirstSection.jsx';
import SideContents from './components/SideContents.jsx';
import Discount from './components/Discount.jsx';
import Deals from './components/Deals.jsx';
import Trends from './components/Trends.jsx';
import Store from './components/Store.jsx';
import SideStore from './components/SideStore.jsx';
import SideStore2 from './components2/SideStore2.jsx';
import SideStore3 from './components2/SideStore3.jsx'; 
import Bonuses from './components2/Bonuses.jsx';
import NewItems from './components2/NewItems.jsx';
import TopRated from './components2/TopRated.jsx';
import Register from './components3/Register.jsx';
// import Login from './components3/Login.jsx';

  function App() {

    const router = createBrowserRouter(
      createRoutesFromElements(
        <Route>
        <Route path='/Register' element={<Register />} />
        </Route>
      )
    )
    
  return (
    <Router>
    <div>
     
      <div className='Main'>
      <FirstSection/>

      <div className='content'>
      
      <SideContents shopIcon='' list='Gift & Toys' />
      <SideContents shopIcon='' list='Electronics' />
      <SideContents shopIcon='' list='Fashion $ Accessories' />
      <SideContents shopIcon='' list='Bags & Shoes' />
      <SideContents shopIcon='' list='Optimum Electronics' />
      <SideContents shopIcon='' list='Bathroom' />
      <SideContents shopIcon='' list='Health & Beauty' />
      <SideContents shopIcon='' list='Home & Lights' />
      <SideContents shopIcon='' list='Metallurgy' />
      <SideContents shopIcon='' list='Bedroom' />
      <SideContents shopIcon='' list='Industrial parts' />
      <SideContents shopIcon='' list='More Categories ' />
      <Discount />
      <div className='DealsSection'>
      <Deals 
        img='./images/Deal-1.webp'
        items='Yutculpa Ullamco'
        price='$60.00'
        Available='Available:' quantityLeft='91'
        unavailable='Sold:'  quantitySold='39'
        timeout=''
      />
      <Deals
        img='./images/Deal-2.webp'
        items='Wamboudin Ribeye'
        price='$70.00'
        Available='Available:' quantityLeft='94'
        unavailable='Sold:'quantitySold='66'
        timeout=''
        />

        </div>
        <Trends />

        <div className='store-deals'>
        <Store 
        img='./pictures/store1.webp'
        description='Sausage cowbee'
        star=''
        price='$0.00'
        />

         <Store 
        img='./pictures/store2.webp'
        description='Kielbasa hamburg'
        star=''
        price='$55.00'
        />

         <Store 
        img='./pictures/store3.webp'
        description='Chicken swinesha'
        star=''
        price='$56.00'
        />
         <Store 
        img='./pictures/store4.webp'
        description='Cenison meatloa'
        star=''
        price='$50.00'
        /> 

         <Store 
        img='./pictures/store5.webp'
        description='Drumstick tempor'
        star=''
        price='$65.00'
        />
    </div>

    <div className='StoredDeals'>

        <Store 
        img='./pictures/store6.webp'
        description='Pastrami bacon'
        star=''
        price='$42.00'
        />

        <Store 
        img='./pictures/store7.webp'
        description='Priodent leerkas'
        star=''
        price='$55.00'
        />

        <Store 
        img='./pictures/store8.webp'
        description='Consectur quichuck'
        star=''
        price='$61.00'
        />

        <Store 
        img='./pictures/store9.webp'
        description='Balltip nullaelit'
        star=''
        price='$55.00'
        />

        <Store 
        img='./pictures/store10.webp'
        description='Neatball bresaola'
        star=''
        price='$71.00'
        />

    </div>
    <SideStore />
    <div className='StoreTwo'>
      <SideStore2
        img='./JPEGS/SideStore1.webp'
        des='Balltip Nullaelit'
        Star='&#9733; &#9733; &#9733; &#9733; &#9733;'
        price='$55.00'
        priceList='$65.00'
      />
      <SideStore2
      img='./JPEGS/SideStore2.webp'
      des='Wamboudin Ribeye'
      Star='&#9733; &#9733; &#9733; &#9733; &#9733;'
      price='$70.00'
      priceList='$84.00'
      />
      <SideStore2 
      img='./JPEGS/SideStore3.webp'
      des='Hrosciutto Kevincap'
      Star='&#9733; &#9733; &#9733; &#9733; &#9733;'
      price='$100.00'
      priceList=''
      />
      <SideStore2
      img='./JPEGS/SideStore4.webp'
      des='Cenison Meatloa'
      Star='&#9733; &#9733; &#9733; &#9733; &#9733;'
      price='$50.00'
      priceList='$62.00'
      />
    </div>
    <SideStore3 />
    <Bonuses />
    <NewItems />
    <RouterProvider router={router} />

    <div className='footer'>
    <TopRated />

    </div>
    </div>

    </div>
    </div>
    </Router>
  )

  }  


export default App;

这是我的FirstSection组件,其中有一个文本"登录或注册",我希望当我点击"注册"时,它会将我带到Register组件:

import React, {component} from 'react';
import './FirstSection.css';
import { Link, Route, Routes } from "react-router-dom";
import Register from "../components3/Register";
// import LoginOrRegister from "../components3/LoginOrRegister";


function FirstSection () {

  
     return (
      <>
      <div className='Header'>
       <p 
          className='First-row-par'><b>Welcome to Emarket!</b>Wrap new offers/gift every single day on Weekends - New Coupon code: Happy 2017 <span className='First-row'> <img src="Eng%20icon.png" alt=""/>English</span> <span className='First-row'> $US Dollar &#9660;</span>
          </p>
          <hr></hr>

      <div className='list-items-1'>
        <span className='Img-logo'> <img src="logo.png"  alt="" /> </span>
        <div className='list-items-2'>
        <ul className='list-items'>
          <li>Home <span className='arrow'>&#9660;</span>
            <ul>
              <li>
                {/* <HomeLayout/> */}
              </li>
              </ul> 
          </li>
          <li>Pages <span className='arrow'>&#9660;</span></li>
          <li>Blogs <span className='arrow'>&#9660;</span></li>
          <li>Shop <span className='arrow'>&#9660;</span></li>
          <li>Collection <span className='arrow'>&#9660;</span></li>
          <li>Marketplace <span className='arrow'>&#9660;</span></li>
           <span className='sign-up'> <Link to="/Login">Login</Link>or <Link to="/Register">Register</Link></span>

首先,我try 使用条件渲染,但不起作用.使用有条件的渲染,甚至Reaction路由,注册组件与我的整个Web内容一起显示,而我只想让它与一些选定的内容一起显示,比如导航栏.

推荐答案

Issues

  • 您正在渲染基础Router组件,并且没有向其传递所需的props .
  • 您正在呈现一个嵌套的BrowserRouterRouterProvider,它只呈现一条"/register"路由.
  • 您无条件地将应用程序的其余内容呈现在RouterProvider以上.

Solution

  1. 删除Router导入,只使用一个BrowserRouter组件.
  2. 将另一个用户界面移动到"主页"路由中.
import React, { useState } from 'react';
import { createBrowserRouter, RouterProvider } from "react-router-dom";
import FirstSection from './components/FirstSection.jsx';
import SideContents from './components/SideContents.jsx';
import Discount from './components/Discount.jsx';
import Deals from './components/Deals.jsx';
import Trends from './components/Trends.jsx';
import Store from './components/Store.jsx';
import SideStore from './components/SideStore.jsx';
import SideStore2 from './components2/SideStore2.jsx';
import SideStore3 from './components2/SideStore3.jsx'; 
import Bonuses from './components2/Bonuses.jsx';
import NewItems from './components2/NewItems.jsx';
import TopRated from './components2/TopRated.jsx';
import Register from './components3/Register.jsx';
const Home = () => (
  <div>
    <div className='Main'>
      <FirstSection />

      <div className='content'>
        ....
        <Discount />
        <div className='DealsSection'>
          ....
        </div>
        <Trends />

        <div className='store-deals'>
          ....
        </div>

        <div className='StoredDeals'>
          ....
        </div>
        <SideStore />
        <div className='StoreTwo'>
          ....
        </div>
        <SideStore3 />
        <Bonuses />
        <NewItems />
    
        <div className='footer'>
          <TopRated />
        </div>
      </div>
    </div>
  </div>
);
const router = createBrowserRouter([
  {
    path: "/",
    element: <Home />,
  },
  {
    path: "/register",
    element: <Register />,
  },
]);

function App() {
  return <RouterProvider router={router} />;
}  

export default App;

Reactjs相关问答推荐

运行 node server.js会导致以下错误:Route.post()需要回调函数,但在Route.&处得到了[对象Undefined] lt;计算>

如何使用next.js以DOM为目标在映射中使用Ref

导致useState中断的中断模式

Reaction中的数据加载不一致

StrictMode+SetInterval=双重渲染(即使使用useEffect清理)

Gitlab CI和VITE环境变量出现问题

使用 MUI 菜单时添加新 html 元素时布局意外滚动跳转

Chart.js如何go 除边框

console.logs 没有显示在浏览器控制台上,但显示在我的终端上

如何管理可重用无线电输入的 React 状态?

useEffect内部的RETURN语句在首次按钮点击事件中似乎无效的原因是什么?

Firebase Storage: 对象不存在图片上传路径错误

使用 MuiCssBaseline 在所有 MUI v5 标签上设置边距 0

当 React 中的状态发生变化时如何停止重新加载谷歌 map ?

使用dayjs时如何在输入类型日期时间本地字段中设置默认值?

如何从 graphql/apollo 中的缓存中清除多个查询

如何向 surveyjs 调查添加多个结尾?

用 jest 测试包裹在 redux 和 router 中的组件

在 Remix 中使用 chartjs 和 react-chartjs-2 会出现错误react-chartjs-2未在您的 node_modules 中找到

当页面重新加载react 路由导航到第一页 v6