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

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

React CheckBox問題

React CheckBox問題

慕桂英546537 2019-05-13 08:56:05
源碼https://stackblitz.com/edit/r...classAppextendsComponent{constructor(){super();this.state={name:'React',checked:false,};this.handleChange=this.handleChange.bind(this)}handleChange(event){this.setState({checked:event.target.checked})}render(){return(colorfortesttest'slabel{this.setState({checked:undefined})}}>something);}}在線演示(支持DevTool)https://react-as5oze.stackbli...問題是這樣的:如果this.state.checked一開始是true(藍色背景),那么我點一下勾選框(this.state.checked為false了),再點一下something按鈕,它又變成了藍色如果this.state.checked一開始是false(紅色背景),那么我點一下勾選框(this.state.checked為false了),再點一下something按鈕,它又變成了紅色something按鈕的功能就是將checked設為undefined,請問這個按鈕為什么會出現上述這種看起來像'復原'的功能補充(我實際遇到的問題):一個設置頁,如果用戶點擊取消則將所有checkbox復原,經過排查發現再復原方法中漏了一個state字段(這就導致這個字段在復原時設為undefined),但是從界面上卻是正常效果
查看完整描述

2 回答

?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

這和react的實現用關系.react會把input的初始狀態存在dom元素的_wrapperState中.你通過document.getElementById('test')._wrapperState看到,其中_wrapperState.initialChecked存的是input初始的checked屬性,當state.checked變為undefined時,react的diff算法會選擇使用_wrapperState.initialChecked作為input的值.
                            
查看完整回答
反對 回復 2019-05-13
  • 2 回答
  • 0 關注
  • 1188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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