react setState()方法可以只修改一個對象的部分屬性


使用Object.assign(),要注意不要返回原對象,應該返回一個新對象:

1、state 定義
state = {
  OAInfo: {app_name: '', user_id: '', app_login_id: ''},
}
2、觸發的修改方法:
thisOAval(event) {
  let data = Object.assign({}, this.state.OAInfo, { app_login_id: event.target.value })
  this.setState({
    OAInfo: data
  })
}

 

在redux中 修改store對象中同理,對已記錄state屬性進行 filter 循環查詢,並替換對應元素后,整體賦值state對象。

*注意:並不推薦使用此方法。因為redux只是記錄數據狀態,進行store修改操作,應該在state中操作比較規范; redux只進行數據記錄,邏輯判斷與修改放在模塊state中,action則只進行異步請求處理


case
SELECTROLEPUSH: return state.set('selectedRoles', state.get('selectedRoles').filter(item => (item.role_id !== action.payload.role_id)).push(action.payload)) // 添加
     return state.set('selectedRoles', state.get('selectedRoles').filter(item => (item.role_id === action.payload))) // 修改
      
        return state.set('defInputVal', { ...state.get('defInputVal'), func_ids: action.payload })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM