Tamam, bunu hızlı bir şekilde yapmaya çalışacağım çünkü kolay bir düzeltme olmalı ...Neden setState yöntemini çağırmak durumu hemen değiştirmiyor?
Bir sürü benzer soru okudum ve cevap oldukça açık görünüyor. İlk etapta bakmak zorunda kalacağım hiçbir şey yok! Ama ... nasıl düzeltileceğini ya da neden olduğunu anlayamayacağım bir hata yaşıyorum.
olarak aşağıdaki gibidir:
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}/>
)
}
Daha kod bu çevreler ancak sorun burada yatıyor budur. Çalışmalı mıyım?
Ben de bu denedim:
handleOnChange = (event) => {
if(event.target.className == "barClubLounge") {
this.setState({barClubLounge: !this.state.barClubLounge});
console.log(event.target.checked)
console.log(this.state.barClubLounge)
}
Yani bu iki
console.log()
's var, ikisi de aynı olmalıdır. Tam anlamıyla devleti, yukarıdaki satırdaki
event.target.checked
ile aynı olacak şekilde ayarlıyorum!
Fakat her zaman gerekenin tersini verir.
!this.state.barClubLounge
; Eğer false başlarsa, ilk tıklamamda onay kutusu işaretli olup olmamasına rağmen, durumun kapalı olmasına rağmen yanlış kalır!
Bu çılgın bir paradoks ve ben ne oluyor, lütfen yardım fikrim yok!