Redux React从API创建初始状态
Redux React create initial state from API
如何从API定义initialState
?
操作
import * as types from '../constants/ActionTypes'
import jquery from 'jquery'
import { apiRoot } from '../config.js'
import Immutable from 'immutable'
import Random from 'random-js'
export function fetchLentItemList() {
return function(dispatch) {
dispatch(fetchLentItems());
jquery.get(`${apiRoot}/api/v1/something/`)
.done((data) => {
dispatch(fetchLentItems("success", Immutable.fromJS(data)))
})
.fail(() => {
dispatch(fetchLentItems("error"))
})
}
}
export function fetchLentItems(status, locations = Immutable.List()) {
return { type: types.FETCH_LENT_ITEMS, status, locations }
}
减速器
import * as types from '../constants/ActionTypes'
import { combineReducers } from 'redux'
import Immutable from 'immutable'
const initialState = {
initialLentItems: [],
lentItems: []
}
function initialLentItems(state = initialState.initialLentItems, action) {
// return state
switch (action.type) {
case types.FETCH_LENT_ITEMS:
switch (action.status) {
case 'success':
return {
initialLentItems: action.locations,
lentItems: []
}
case 'error':
return {
initialLentItems: Immutable.List(),
lentItems: []
}
default:
return Object.assign({}, state, { isLoading: true })
}
default:
return state
}
}
const rootReducer = combineReducers({
initialLentItems
})
export default rootReducer;
在reducers
中,如果我这样定义我的initialState
,它会起作用:
initialLentItems: Immutable.fromJS([
{
"lent_item_id": 5648,
"vendor": "Vendor A",
"product": "Product A",
"variant": "Variant A",
},
{
"lent_item_id": 5648,
"vendor": "Vendor B",
"product": "Product B",
"variant": "Variant B",
}
]),
提前谢谢。
在Redux根元素的componentWillMount
(由Provider
包装并接收存储的元素)中,您可以调度fetchLentItems
函数来设置初始状态。
相关文章:
- 在Redux中链接async和sync操作以计算初始状态
- React + Flux:将初始状态引入存储
- 你能,或者应该在Redux'中使用localStorage吗;s的初始状态
- javascript关闭以记住初始状态
- 在两个或多个 UL 列表之间切换,如果单击一个列表,则其他列表会自动以初始状态返回,就像从未单击过一样
- ReactJs:如何在渲染组件时传递初始状态
- 如何将 redux 状态返回到初始状态
- 停止无限CSS3动画并平滑恢复到初始状态
- 将高图重置为初始状态
- 如何将 DOM 状态重置为初始状态(首次接收页面时?
- 从服务器加载 html 和控制器并创建动态状态 UI - 路由器
- 高图表 将向下钻取(三层)重置为初始状态
- 是否可以在单击时将类(特别是其动画)重置回其初始状态
- Ember-cli 创建/初始化应用程序.js两次
- ReactJS中初始状态的未定义值
- 如何基于Rx.ReplaySubject模型在React中设置初始状态
- javascript/jquery stop按钮将播放按钮更改为初始状态而不是暂停
- 要在其中设置动画的元素的初始状态
- 使用“:悬停”;并使其恢复到它's较小(初始状态)
- Redux React从API创建初始状态