您可以使用例如通常用於數據存儲的redux。假設你有一個LOAD_POSTS_DATA
作用,其組件可以開火的時間點,你可以使用AA減速這樣的:
export const LOAD_POSTS_DATA = 'LOAD_POSTS_DATA';
var connected = ... // filled by NetInfo
const initialState = {
data: [],
};
export default function reducer(state = initialState, action) {
switch (action.type) {
case LOAD_POSTS_DATA:
if (connected) {
return {
open: true,
};
}
return state;
default:
return state;
}
}
export function load() {
return {
type: LOAD_POSTS_DATA,
};
}
這不僅沒有加載數據,對於推遲你會寫第二減速器像這樣的:
const CLEAR_QUEUE = 'CLEAR_QUEUE';
import { LOAD_POSTS_DATA } from './otherReducer';
var connected = ... // filled by NetInfo
const initialState = {
queue: [],
};
export default function reducer(state = initialState, action) {
switch (action.type) {
case LOAD_POSTS_DATA:
if (!connected) {
var q = state.queue;
q.push(action);
return {
queue: q,
};
}
return state;
case CLEAR_QUEUE:
return {
queue: []
}
default:
return state;
}
}
// needs to be called as soon as you go back only
// requires redux-thunk
export function getOperations() {
return (dispatch, getState) => {
const { thisReducer: { queue } } = getState();
queue.forEach(action => dispatch(action));
return {
type: CLEAR_QUEUE,
};
};
}
第二個門店每延遲的操作(需要從其他減速進口),並使用redux-thunk得到的行動保持並儘快派遣他們爲你重新聯機。
你用什麼來管理你的應用程序狀態? –
目前使用助焊劑 – Karim
如果您使用的是Redux,則可以使用此庫使您的狀態可以脫機使用:https://github.com/rt2zz/redux-persist –