将颜色更改为功能组件
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】:我看到了<Router>
,所以我认为您正在使用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 - 钩子将类组件(输入,条件)更改为功能组件?