Mam pewne problemy ze stylizacją podczas korzystania z React-router i React-bootstrap. poniżej znajduje się fragment kodu
import { Route, RouteHandler, Link } from 'react-router';
import AuthService from '../services/AuthService'
import { Button, Nav, Navbar, NavDropdown, MenuItem, NavItem } from 'react-bootstrap';
<Nav pullRight>
<NavItem eventKey={1}>
<Link to="home">Home</Link>
</NavItem>
<NavItem eventKey={2}>
<Link to="book">Book Inv</Link>
</NavItem>
<NavDropdown eventKey={3} title="Authorization" id="basic-nav-dropdown">
<MenuItem eventKey="3.1">
<a href="" onClick={this.logout}>Logout</a>
</MenuItem>
</NavDropdown>
</Nav>
Tak to wygląda podczas renderowania.
Wiem, że <Link></Link>
to powoduje, ale nie wiem dlaczego? Chciałbym, żeby to było w linii.
react-router
react-bootstrap
chad schmidt
źródło
źródło
Najlepszym rozwiązaniem jest użycie LinkContainer z React -router-bootstrap . Poniższy kod powinien działać.
Jest to głównie uwaga dla przyszłego ja, podczas wyszukiwania tego problemu w Google. Mam nadzieję, że odpowiedź przyniesie korzyści komuś innemu.
źródło
Aktualizacja 2020: przetestowana z
react-boostrap: 1.0.0-beta.16
ireact-router-dom: 5.1.2
Aktualizacja 2019: dla tych, którzy pracują z reakcją-bootstrap v4 (obecnie używają 1.0.0-beta.5) i react-router-dom v4 (4.3.1) po prostu użyj "as" z Nav.Link, tutaj jest pełna przykład:
Oto działający przykład: https://codesandbox.io/s/3qm35w97kq
źródło
LinkContainer
from,react-router-bootstrap
ponieważ to rozwiązanie obsługujeactiveClassName
.Czy próbowałeś użyć React-bootstrap
componentClass
?źródło
Możesz uniknąć korzystania
LinkContainer
z opcji React-router-bootstrap. JednakcomponentClass
ma się staćas
w następnym wydaniu. Możesz więc użyć następującego fragmentu kodu dla ostatniej wersji (v1.0.0-beta):źródło
Oto rozwiązanie do użycia z routerem React-Router 4:
źródło
router.transitionTo(href)
używaćrouter.history.push(href)
Możesz skorzystać z historii , pamiętaj tylko, aby utworzyć komponent z routerem :
w App.js:
w Navigation.js:
źródło
IndexLinkContainer jest lepszą opcją niż LinkContainer, jeśli chcesz, aby wewnętrzny element NavItem podświetlał, który jest aktywny w oparciu o bieżący wybór. Nie jest wymagana ręczna procedura wyboru
źródło
IndexLinkContainer
? nie mogłem go znaleźć nigdzie w dokumentach, chociaż ...Aby dodać funkcjonalność za pomocą właściwości „activeKey” w wersji beta reagowania na bootstrap v_1.0, użyj tego formatu:
źródło