reactjs - 使用引导程序在 React 中动态更改 NavDropdown 的标题
问题描述
我用 ReactBootstrap 创建了一个下拉菜单,标题为“登录”。我想在用户登录时将标题动态更改为 SIGN OUT。我已经编写了我的 firebase 授权代码,但我只想更改标题。
这是我的 Home 组件,其中包含 NavBar:
import React from 'react'
import {Navbar,NavDropdown, Nav } from 'react-bootstrap'
import SignIn from './SignIn'
class Home extends React.Component{
render(){
return(
<div>
<Navbar collapseOnSelect expand="lg" bg="light" >
<Navbar.Brand href="/">Home Page</Navbar.Brand>
<Navbar.Toggle aria-controls="responsive-navbar-nav" />
<Navbar.Collapse id="responsive-navbar-nav">
<Nav className="mr-auto">
<Nav.Link href="#features">Home</Nav.Link>
<Nav.Link href="#pricing">About Us</Nav.Link>
<NavDropdown title="Products" id="collasible-nav-dropdown">
<NavDropdown.Item href="#action/3.1">1</NavDropdown.Item>
<NavDropdown.Item href="#action/3.2">2</NavDropdown.Item>
<NavDropdown.Item href="#action/3.3">3</NavDropdown.Item>
<NavDropdown.Item href="#action/3.3">4</NavDropdown.Item>
</NavDropdown>
<Nav.Link href="#pricing">Contact</Nav.Link>
<Nav.Link href="#pricing">Shop</Nav.Link>
</Nav>
<Nav>
<NavDropdown title="SIGN IN" id="collasible-nav-dropdown">
<NavDropdown.Item href="SignIn">User</NavDropdown.Item>
<NavDropdown.Item href="AdminSignIn">Admin</NavDropdown.Item>
</NavDropdown>
</Nav>
</Navbar.Collapse>
</Navbar>
</div>
)
}
}
export default Home
解决方案
你需要使用状态。当状态改变时,就会发生重新渲染。
就像是
const [signedIn, setSignedIn] = useState(false);
let titleHere = signedIn? 'Sign Out': 'Sign In';
然后
<NavDropdown.Item onClick={(e: any) => {setSignedIn(true)}}>{titleHere}</NavDropdown.Item>
当事件被触发时,状态发生改变,并发生重新渲染。
推荐阅读
- pine-script - 是否有在入口点使用 ATR 作为止损的 Pine 脚本?
- python - 我可以将 elasticsearch-dsl 的 IpRange 子类化以供 django-elasticsearch-dsl 使用吗?
- node.js - Discord.js 在库存项目之间放置空间
- spring-data-jpa - 使用 INNER JOIN 或从多个实体返回属性时选择哪个 Spring Data 存储库?
- python - 实现一种让我的 tron 角色无法通过自己的方法
- python - 如何复制不同 JSON 文件的正文并使用 Python 将它们全部写入一个文件?
- google-chrome - 是否可以在 Chrome 浏览器之外访问 Chrome Storage Sync?
- javascript - Google Earth Engine Tile 错误:数组参数必须沿一个轴具有相同的长度
- python - 在 tkinter、python 的类之间传递值
- javascript - 灯箱淡入淡出过渡 javascript