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

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

ReactJS setState 到空白對象不起作用

ReactJS setState 到空白對象不起作用

胡說叔叔 2021-09-30 09:51:32
我有這樣的狀態state = {        params: {}    }假設this.setState({params:{data:2}})當我們想要恢復到我們調用的初始狀態時,我們設置了 params this.setState({params:{}})。狀態恢復了,但問題是視圖仍然呈現 2(this.state.params.data 的值)。唯一的工作方式是我打電話this.setState({params:{data:''}})。想象一下,如果我們有很多字段,我們就不會那樣做。有什么解決辦法嗎?
查看完整描述

2 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

調用this.setState({params:{}})會將 設置params為狀態上的空對象。要驗證您可以在回調中記錄新狀態:


this.setState({params:{}}, () => console.log(this.state)) // {params: {}}


編輯:查看更新的問題,您遇到的問題是您的狀態通過this.state.params.data. 在這種情況下,當您將狀態params設置為空對象時,輸入的值將設置為undefined,您將收到警告:A component is changing a controlled input of type text to be uncontrolled.


在這種情況下,您的默認狀態必須如下所示:


this.state = {

  params: {data: ''}

}

和重置方法:


revertState = () => {

    this.setState({

      params: {data: ''}

    });

  };

或者,您可以通過刪除valueprop使您的輸入不受控制,但在這種情況下,您將無法直接修改它。


查看完整回答
反對 回復 2021-09-30
  • 2 回答
  • 0 關注
  • 465 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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