Javascript 在JSX中单击onClick时切换变量

Javascript 在JSX中单击onClick时切换变量,javascript,reactjs,Javascript,Reactjs,我的构造函数中有一个默认状态 this.state { showModal:false } 那么,我如何在不声明函数的情况下切换值,而直接在JSX中进行切换呢?我发现函数中的代码太多了。就这样做就不能更简单吗 render(){ return(<div onClick={()=>this.setState({showModal:!showModal})}></div>) } render(){ 返回(this.setState({showmode

我的构造函数中有一个默认状态

this.state {
    showModal:false
}
那么,我如何在不声明函数的情况下切换值,而直接在JSX中进行切换呢?我发现函数中的代码太多了。就这样做就不能更简单吗

render(){
    return(<div onClick={()=>this.setState({showModal:!showModal})}></div>)
}
render(){
返回(this.setState({showmodel:!showmodel}}}>)
}

但我在上面的JSX中得到了语法错误。为什么?

记住,React状态在
this.state
属性中维护,因此您需要引用
this.state.showmodel
,而不是
this.showmodel

正确的方法是:

<div onClick={() =>
    this.setState({showModal: !this.state.showModal})}>
</div>

this.setState({showmodel:!this.state.showmodel})}>

至于只使用JSX(不声明函数)实现这一点,这是不可能的。JSX是JavaScript。

记住,React状态在
this.state
属性中维护,因此您需要引用
this.state.showmodel
,而不是
this.showmodel

正确的方法是:

<div onClick={() =>
    this.setState({showModal: !this.state.showModal})}>
</div>

this.setState({showmodel:!this.state.showmodel})}>

至于只使用JSX(不声明函数)实现这一点,这是不可能的。JSX是JavaScript。

@bejado不会工作,你会遇到什么错误?@bejado不会工作,你会遇到什么错误?