ठीक है, मैं कोशिश करूँगा और इसे जल्दी कर दूंगा क्योंकि यह एक आसान फिक्स होना चाहिए ...क्यों सेटस्टेट विधि को कॉल करना राज्य को तुरंत म्यूट नहीं करता है?
मैंने इसी तरह के प्रश्नों का एक समूह पढ़ा है, और उत्तर काफी स्पष्ट प्रतीत होता है। मुझे पहले कभी भी देखना नहीं होगा! लेकिन ... मुझे एक त्रुटि है कि मैं समझ नहीं सकता कि कैसे ठीक किया जाए या क्यों हो रहा है।
के रूप में इस प्रकार है:
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}/>
)
}
अधिक कोड इस चारों ओर से घेरे लेकिन यह वह जगह है जहाँ मेरी समस्या है। काम करना चाहिए, है ना?
मैं भी इस की कोशिश की है:
handleOnChange = (event) => {
if(event.target.className == "barClubLounge") {
this.setState({barClubLounge: !this.state.barClubLounge});
console.log(event.target.checked)
console.log(this.state.barClubLounge)
}
तो मैं उन दो console.log()
की है, दोनों एक ही होना चाहिए। मैं सचमुच राज्य को event.target.checked
के समान रेखा में समान रूप से सेट कर रहा हूं!
लेकिन यह हमेशा इसके विपरीत के विपरीत देता है।
जब मैं !this.state.barClubLounge
का उपयोग करता हूं तो वही जाता है; यदि यह गलत शुरू होता है, तो मेरे पहले क्लिक पर यह झूठ रहता है, भले ही चेकबॉक्स चेक किया गया हो या नहीं, राज्य से अलग है !!
यह एक पागल विरोधाभास है और मुझे नहीं पता कि क्या हो रहा है, कृपया मदद करें!