将颜色更改为功能组件

Posted

技术标签:

【中文标题】将颜色更改为功能组件【英文标题】:change color to a functional component 【发布时间】:2021-11-06 21:37:30 【问题描述】:

我需要把header组件的h1文本颜色改成黑色,但是home不行,只给其他页面,我试过inline style但是不行,有什么解决办法吗?

    <Router>

      <div className="app">

        <Switch>

          <Route path='/portraits'>
            <Header />
            <Portraits />
            <Footer />
          </Route>

          <Route path='/contact'>
            <Header />
            <Contact />
            <Footer />
          </Route>

          <Route path='/'>
            <Header />
            <Home />
          </Route>

        </Switch>

      </div>

    </Router>

标题组件,我使用引导程序作为下拉菜单

<nav>
            <Link to='/' className="title">
                <h1>Ioana Savin</h1>
            </Link>

            <div className="head">

            <DropdownButton title="Portfolio" className='button'>
                
                      
                    <Dropdown.Item href='/fashion'>Fashion</Dropdown.Item>
                
                    <Dropdown.Item href='/portraits'>Portraits</Dropdown.Item>
                
                    <Dropdown.Item href='/bnw'>BnW</Dropdown.Item>
                
                    <Dropdown.Item href='/analogue'>Analogue</Dropdown.Item>
                
                    <Dropdown.Item href='/clienti'>Clienti</Dropdown.Item>
                

            </DropdownButton>
            
            <Link to='/portfolio' className="link">   
            <DropdownButton title="Contact" className='button' />     
            </Link>
            
            </div>
        </nav>

【问题讨论】:

请显示 Header 组件 【参考方案1】:

我看到了&lt;Router&gt;,所以我认为您正在使用react-router。 您可以在 Header 组件中检查您正在使用的路线:

import  useLocation  from 'react-router-dom';

const Header = () => 
  const location = useLocation();

  return (
    <>
     <h1 style=location.pathname !== 'home' ? color: "black" : >Title</h1>
     [... other components]
    </>
  )

(显然用你主页的路径名替换'home')

【讨论】:

【参考方案2】:

您可以使用道具来控制它:

<Route path='/'>
  <Header isHomeScreen />
  <Home />
</Route>

<h1 style=!isHomeScreen ? color: "black" : >Ioana Savin</h1>

【讨论】:

以上是关于将颜色更改为功能组件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 useState - 钩子将类组件(输入,条件)更改为功能组件?

material-ui 组件样式自定义 - 将选择组件的颜色更改为白色

基于像素的标签将2D像素阵列更改为图像

将链接的默认颜色从蓝色更改为白色

React-Router 路由到类组件

试图将我的屏幕颜色更改为黑色