我正在使用Redux在React Native中编写应用程序。当我执行一个动作而不是更新商店时,它似乎取代了商店,只定义了我的减速器中明确规定的值。
我正在使用handleActions
包中的redux-actions
。减速器的示例如下所示;
import { handleActions } from 'redux-actions';
export default handleActions({
DOCUMENT_GET_ALL_PENDING: state => ({
isRefreshing: true,
}),
DOCUMENT_GET_ALL_FULFILLED: (state, action) => ({
document: action.payload.documents,
isRefreshing: false,
}),
}, { isRefreshing: false, documents: [] });
例如,当它达到DOCUMENT_GET_ALL_PENDING
时,文档数组将设置为undefined。
这是我的商店的创作看起来像;
我使用的是redux-promise-middleware
,redux-devtools-extension
和thunk
中间件。
const store = createStore(
rootReducer,
defaultState,
composeWithDevTools(applyMiddleware(promiseMiddleware(), thunk)),
);
欢迎提供任何帮助或建议。
答案 0 :(得分:2)
您需要合并您的状态与上一个状态。现在你只是返回新的州值。
有很多种方法可以使用es6 spread operator
。
DOCUMENT_GET_ALL_PENDING: state => ({
...state,
isRefreshing: true,
}),
DOCUMENT_GET_ALL_FULFILLED: (state, action) => ({
...state,
document: action.payload.documents,
isRefreshing: false,
})