Ok, je vais essayer de le faire rapidement parce que ça DEVRAIT être une solution facile...
J'ai lu un tas de questions similaires, et la réponse semble assez évidente. Rien de je pourrais jamais avoir à rechercher en premier lieu! Mais... je vais avoir une erreur que je ne peux pas imaginer comment réparer ou pourquoi il n'arrive.
Comme suit:
class NightlifeTypes extends Component {
constructor(props) {
super(props);
this.state = {
barClubLounge: false,
seeTheTown: true,
eventsEntertainment: true,
familyFriendlyOnly: false
}
this.handleOnChange = this.handleOnChange.bind(this);
}
handleOnChange = (event) => {
if(event.target.className == "barClubLounge") {
this.setState({barClubLounge: event.target.checked});
console.log(event.target.checked)
console.log(this.state.barClubLounge)
}
}
render() {
return (
<input className="barClubLounge" type='checkbox' onChange={this.handleOnChange} checked={this.state.barClubLounge}/>
)
}
Plus de code entoure mais c'est là que mon problème se situe. Devrait fonctionner, non?
J'ai aussi essayé ceci:
handleOnChange = (event) => {
if(event.target.className == "barClubLounge") {
this.setState({barClubLounge: !this.state.barClubLounge});
console.log(event.target.checked)
console.log(this.state.barClubLounge)
}
J'ai donc ces deux - console.log()
s', les deux devraient être les mêmes. Je suis littéralement réglage de l'etat est la même que l' event.target.checked
dans la ligne au-dessus d'elle!
Mais il renvoie toujours à l'opposé de ce qu'il devrait.
En va de même pour quand j'utilise !this.state.barClubLounge
; Si elle commence à faux, sur mon premier clic, il reste faux, même si la si la case est cochée ou non est basé hors de l'état!!
C'est un fou paradoxe et je n'ai aucune idée de ce qui se passe, s'il vous plaît aider!