我想知道我是否有
之类的动作.then((res) => {
dispatch({
type: FETCH_DATA_SUCCESS,
payload: res
})
})
,在我的减速器中,我想用动作有效载荷来更改状态。因此,在这种情况下,它是来自api的响应。和一些有价值的状态,例如。 isLoading:isLoading为true时为false
在我的减速器中,如下所示:
let initialState = [{
isLoading: false,
}]
export default (state = initialState, action) => {
switch (action.type) {
case FETCH_DATA_START:
return [...state]
case FETCH_DATA_SUCCESS:
return [...state, ...action.payload]
case FETCH_DATA_FAILED:
return [state]
default:
return state
}
}
在情况:FETCH_DATA_SUCCESS 动作有效负载和isLoading:true中,这是分配方式。
所以最终我要使我的状态像这样:
State = [{
isLoading: true,
items: [{}] // items is coming from response of fetch call
}]
我该如何实现?
答案 0 :(得分:4)
如果您的状态是Object
而不是Array
,则更容易。在您的减速器中尝试:
let initialState = {
isLoading: false,
error: null,
}
export default (state = initialState, action) => {
switch (action.type) {
case FETCH_DATA_START:
return { ...state, isLoading: true }
case FETCH_DATA_SUCCESS:
return { ...state, items: ...action.payload, isLoading: false }
case FETCH_DATA_FAILED:
return { ...state, error: ...action.payload, isLoading: false }
default:
return state
}
}