搜索

首页  >  问答  >  正文

我正在使用 React 构建三个页面,每个页面都有自己的 css 文件,并且只有一个 css 文件适用于每个页面

我正在处理这三个页面: App.js 有两个按钮,当您单击第一个按钮时,它将带您进入“/quotes”页面,当您单击第二个按钮时,它将带您进入“/recommendations”页面。所有三个的 html 都可以工作,但是每当我转到“/quotes”或“/recommendations”时,App.js html 内容和 css 内容都会继续出现(以一种非常奇怪和破碎的方式,看起来非常糟糕)。 这是一个例子:

这是我的代码: 应用程序.js:

import './App.css';
import { BrowserRouter as Router, Routes, Route} from 'react-router-dom';
import QuotePage from './QuotePage.js'
import RecommendationPage from './RecommendationPage.js'

function App() {

  return (
     <div className="all-page"> 
     <Router>
        <Routes>
            <Route path="/quotes" element={<QuotePage/>}/>
            <Route path="/recommendations" element={<RecommendationPage/>}/>
        </Routes>
      
    </Router>
             <main className="central-div">
                <h2>Taylor's Songs</h2>
                
                <a href="/quotes" className="quote-bttn">
                  FIND ME A QUOTE
                </a>
                <a href="/recommendations" className="recommend-bttn">
                    GET ME A RECOMMENDATION
                </a>
             </main>
        </div>
  );
  
    
}
export default App;

QuotePage.js:

import './QuotePage.css';

function QuotePage() {
  return (
     <h1>testing</h1>
  );
 
}

export default QuotePage;

QuotePage.css(我这样做只是为了测试):

body{
    background-color: red;
}

RecommendationPage.js:

import './RecommendationPage.css';
function RecommendationPage() {
  return (
    <div className="test">
         <h1>this should be the recommendation page!</h1>
    </div>
    
  );
  
 
}

export default RecommendationPage;

推荐页面.css:

*{
    background: rgba(191, 240, 243, 0.94);
}
.test{
    background-color: rgb(234, 83, 83);
    height: 30px;
}

如果这里缺少任何内容,我很抱歉,如果您快速查看一下是否在这里,我将非常感激:https://github.com/vitoriaacarvalho/my-taylor-swift-api/tree/master /前面

非常感谢所有试图帮助我的人! <3

P粉238433862P粉238433862235 天前495

全部回复(1)我来回复

  • P粉644981029

    P粉6449810292024-04-05 09:13:08

    我认为您陷入了新人通常会遇到的陷阱:它的结构不像 HTML。

    虽然这并不完全正确,但一开始就认为 React 只有一个屏幕/页面:app.js,这是有帮助的。您可以使用组件将其他内容拉入此页面。这称为管理状态。

    因为您在 app.js 中拥有所有这些代码,所以它将继续出现。您需要做的是创建一个单独的文件(例如“home.js”)并将该代码放入其中。

    然后,您需要使用像react-router-dom这样的工具进行路由,以便可以更改屏幕上的内容。

    完成此操作后,您将开始了解 React 的工作原理。

    所以:

    1. 将所有内容移至名为 home.js 的新文件中
    2. 使用 npm 安装 React-router-dom
    3. 创建一个名为 navbar.js 的新文件,并使用它为您的网站创建导航栏
    4. 完成后,仅将 navbar.js 作为 app.js 中的组件调用
    5. 将您的页面添加为路由

    您需要阅读react-router-dom,但这非常简单

    回复
    0
  • 取消回复