J'ai un problème particulier avec l'utilisation d'une Nav et NavItem avec une case à cocher de React Bootstrap. Le problème est que si je clique directement sur la case à cocher et non sur le bouton NavItem, la case à cocher ne se réaffichera pas correctement mais mon état a été mis à jour.
Exemple : Avec le code ci-dessous, je rends le composant et clique directement sur la case à cocher. Dans ce cas, showMap
sera défini sur false
car nous l'avons défini sur true
dans le constructeur mais la case à cocher restera cochée dans la vue html. Si je clique cependant sur le NavItem mais pas directement sur la case à cocher, à la fois l'état showMap
est mis à jour correctement ainsi que la vue.
https://react-bootstrap.github.io/components.html#navs
import * as React from "react";
import * as ReactDOM from "react-dom";
import { LinkContainer } from 'react-router-bootstrap';
import { Col, Nav, NavItem, Checkbox } from "react-bootstrap";
interface IProps {
}
interface IState {
showMap: boolean
}
export class Menu extends React.Component {
constructor(props: any) {
super(props);
this.state = {
showMap: true
}
}
toggleCheckbox = (event: any) => {
event.preventDefault();
this.setState({ showMap: !this.state.showMap });
}
render() {
return (
Test
Test2
Afficher la carte
)
}
}
Mise à jour :
J'ai également essayé de le faire de cette façon, et j'obtiens toujours le même résultat :
import * as React from "react";
import * as ReactDOM from "react-dom";
import { LinkContainer } from 'react-router-bootstrap';
import { Navbar, Nav, NavItem, Checkbox } from "react-bootstrap";
interface IProps {
}
interface IState {
showMap: boolean
}
export class Menu extends React.Component {
constructor(props: any) {
super(props);
this.state = {
showMap: true
}
}
toggleCheckbox = (event: any) => {
event.preventDefault();
this.setState({ showMap: !this.state.showMap });
}
render() {
return (
Test
Test2
Afficher la carte
)
}
}