React-使用redux-immutable統一數據格式


  在header的reducer.js里把header變成immutable對象之后,在組件里獲取focused屬性就得這樣獲取:

focused:state.header.get('focused')

  state是一個js對象,state.header是一個immutable對象,所以調用focused這個屬性點時候先用.再用.get(),數據獲取行為是不統一的。我們需要把state也變成immutable對象而不是js對象。

  state是在跟目錄的總的reducer.js下創建的,我們需要依賴一個redux-immutable庫。

1.安裝

 npm install redux-immutable --save

2.跟目錄下總的reducer.js里:combineReducers不再用rudux里的,而是redux-immutable里的,這樣combineReducers里的對象就是一個immutable對象。

//combineReducers不再用rudux里的,而是redux-immutable里的,這樣combineReducers里的對象就是一個immutable對象
//import {combineReducers} from 'redux'
import {combineReducers} from 'redux-immutable'
import {reducer as headerReducer} from '../common/header/store'
const reducer=combineReducers({
    header:headerReducer
});
export default reducer;

3.獲取數據的時候用get(),或者getIn()

const mapStateToProps = (state) => {    
      return  {
          focused:state.getIn(['header','focused'])
          //focused:state.get('header').get('focused')
      }    
}

 


免責聲明!

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



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