为了账号安全,请及时绑定邮箱和手机立即绑定

如何在一个 onClick(ReactJS) 中调用一个类和 setState

如何在一个 onClick(ReactJS) 中调用一个类和 setState

慕斯709654 2021-11-18 16:31:43
我对 React 还很陌生,我想知道如何在一个类中调用一个函数(比如 this.handleChange)和一个带有 setState 的箭头函数,在一个按钮的一个 onClick 中。我试过在两行代码之间使用逗号和 && 。<button name="Plus" onClick={() => this.setState({ Operator: 'plus' }) && this.handlePlus}>+</button>上面的代码在render和return里面。预期的结果是代码调用函数并改变状态。相反,它只是改变状态(所以只有第一部分)。请帮忙,先谢谢了!
查看完整描述

3 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

setState()有一个可选的第二个参数,它是一个函数,一旦设置了状态就会被调用。你可以这样做:


this.setState({ Operator: 'plus' }, this.handlePlus);


您还可以使用componentDidUpdate生命周期:


componentDidUpdate(prevProps, prevState) {

  if(this.state.Operator === 'plus' && prevState.Operator !== 'plus') {

    this.handlePlus();

  }

}


查看完整回答
反对 回复 2021-11-18
?
墨色风雨

TA贡献1853条经验 获得超6个赞

只需this.setState({ Operator: 'plus' }handlePlus函数内添加。


查看完整回答
反对 回复 2021-11-18
?
浮云间

TA贡献1829条经验 获得超4个赞

< button name = "Plus"

onClick = {

  () => this.setState({

    Operator: 'plus'

  }, () => this.handlePlus())

} > + < /button>


this would work fine.or

if you are looking

for something like this....

you can handle multiple buttonClick event like this


  <

  button name = "Plus"

value = "yourValue"

onClick = {

  this.handleChange

} > + < /button>


handleChange = (e) => {

  const {

    name,

    value

  } = e.target;

  switch (name) {

    case 'Plus':

      this.setState({

        [name]: value

      });

      break;

    default:

      //enter code here

      break;

  }


}


查看完整回答
反对 回复 2021-11-18
  • 3 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信