亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在一個 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 關注
  • 249 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號