Javascript 将变量传递给setState
我是新来的。在我的程序中,用户被要求点击一个按钮,然后根据该按钮,状态被改变 这是渲染部分:Javascript 将变量传递给setState,javascript,reactjs,setstate,Javascript,Reactjs,Setstate,我是新来的。在我的程序中,用户被要求点击一个按钮,然后根据该按钮,状态被改变 这是渲染部分: <button onClick={this.togglePage(2)}>Click Here</button> 我在这里传递值的方式正确吗?我收到一个错误,说“超过了最大更新深度”您需要传递一个函数,而不是立即调用它 <button onClick={() => this.togglePage(2)}>Click Here</button>
<button onClick={this.togglePage(2)}>Click Here</button>
我在这里传递值的方式正确吗?我收到一个错误,说“超过了最大更新深度”您需要传递一个函数,而不是立即调用它
<button onClick={() => this.togglePage(2)}>Click Here</button>
this.togglePage(2)}>单击此处
正如当前编写的那样,您在render中调用
togglePage
,这会导致状态更新和重新render破坏调用堆栈。您需要传递一个函数,而不是立即调用它
<button onClick={() => this.togglePage(2)}>Click Here</button>
this.togglePage(2)}>单击此处
正如当前编写的那样,您在render中调用了
togglePage
,这会导致状态更新和重新渲染,从而破坏调用堆栈。哦,我明白了。即使我没有传递值,这也会发生吗?类似于just-toggle(true/false)函数的情况?@DarkProfessor如果您调用该函数而不是将其作为回调传递,则是onClick={fn}
-okonClick={fn()}
-notok,除非fn
返回一个新函数:)如果在render
中使用箭头函数,这将变得多余。如果需要使用不同的值创建多个togglePage
回调,可以通过创建makePageToggler(currentpage){return()=>this.setState({currentpage})}
和调用onClick={this.makePageToggler(2)}
来重写代码,但不需要。正如函数名bind()
所示,该语句用于将上下文this
的名称togglePage
绑定到您实现的函数togglePage
。不过,您可以这样编写该函数:togglePage=(page)=>{…}
,并且您不需要任何绑定注意,在makePageToggler
的情况下,可以进行调用,因为它返回一个新函数。哦,我明白了。即使我没有传递值,这也会发生吗?类似于just-toggle(true/false)函数的情况?@DarkProfessor如果您调用该函数而不是将其作为回调传递,则是onClick={fn}
-okonClick={fn()}
-notok,除非fn
返回一个新函数:)如果在render
中使用箭头函数,这将变得多余。如果需要使用不同的值创建多个togglePage
回调,可以通过创建makePageToggler(currentpage){return()=>this.setState({currentpage})}
和调用onClick={this.makePageToggler(2)}
来重写代码,但不需要。正如函数名bind()
所示,该语句用于将上下文this
的名称togglePage
绑定到您实现的函数togglePage
。尽管如此,您可以这样编写该函数:togglePage=(page)=>{…}
,并且您不需要任何绑定注意,在makePageToggler
的情况下,可以进行调用,因为它返回一个新函数。