在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ reducer如何從后臺(tái)獲取數(shù)據(jù)來初始化store?

reducer如何從后臺(tái)獲取數(shù)據(jù)來初始化store?

我想寫一個(gè)reducer,初始化的時(shí)候state的值是從后臺(tái)取回來的,應(yīng)該如何實(shí)現(xiàn)?
在使用其他action的時(shí)候是直接使用的redux-thunk直接dispatch一個(gè)函數(shù)操作接口還是dispat已經(jīng)存在的state?

補(bǔ)充一下:
我想通過從后臺(tái)獲取值來初始化state,如何所有對(duì)數(shù)據(jù)的操作都是基于這個(gè)state.
這是是后臺(tái)取數(shù)據(jù)的db.json的格式。
{

"user": [
  {
    "id": 10000,
    "name": "張三",
    "student_id": 2018214001,
    "gender": "male"
  },
  {
    "id": 10001,
    "name": "李四",
    "student_id": 2018214002,
    "gender": "female"
  },
  {
    "id": 10002,
    "name": "王五",
    "student_id": 2018214003,
    "gender": "female"
  }
],
"book": [
  {
    "id": 10000,
    "name": "JavaScript從入門到精通",
    "price": 45,
    "owner_id": 10000
  },
  {
    "id": 10001,
    "name": "Java從入門到放棄",
    "price": 67,
    "owner_id": 10001
  }
]

}

我想做的是,將user和book拆分成兩個(gè)render,分別管理兩個(gè)state,然后在進(jìn)頁(yè)面的時(shí)候給router綁定onEnter事件的事件,事件里面通過store.dispatch(fn()),fn里面在去fetch請(qǐng)求,把返回來的值在賦值state。
圖片描述

圖片描述

不知道這樣子做行不行,因?yàn)橹虚g卡住了,不知道應(yīng)該怎么講兩個(gè)state合并之后和bd.json格式一樣。對(duì)redux這一塊還是有點(diǎn)懵逼,謝謝各位大神指導(dǎo)~

回答
編輯回答
陌璃
let initState={

}
function userReducer(state=initState,action){
  switch(action.type){
    case 'REQUEST_USER_LIST':
    return Object.assign({},state,{user:action.payload})
    case 'REQUEST_BOOK_LIST':
    return Object.assign({},state,{book:action.payload})
    default:
    return state;
  }
}

參照這種模式異步獲取數(shù)據(jù)的函數(shù)里返回一個(gè)函數(shù),該函數(shù)接收的參數(shù)是dispatch,進(jìn)入函數(shù)之后dispatch一個(gè)已有的action或者actionCreate函數(shù),根據(jù)返回?cái)?shù)據(jù)dispatch不同的成功或失敗action

2018年5月31日 11:24