#javascript #reactjs #react-native #redux
#язык JavaScript #реагирует на #реагировать-родной #возвращение
Вопрос:
Я пытаюсь сохранить все состояние, ожидаю, что некоторые свойства, которые мне не нужны, будут храниться в хранилище redux, я храню их в массиве, редуктор выглядит так
export interface NoteI { id?: number | Date; header?: string; note?: string; date?: Date; selectStatus?: boolean; /// i want to keep this false everytime i reload the app } let NoteList: NoteI[] = []; const noteReducer = createSlice({ name: "note", initialState: NoteList, reducers: { addNote: (state, action: PayloadActionlt;NoteIgt;) =gt; { const newNote: NoteI = { id: new Date(), header: action.payload.header, note: action.payload.note, date: new Date(), selectStatus: false, }; state.push(newNote); }, removeNote: (state, action: PayloadActionlt;NoteIgt;) =gt; { return state.filter((item) =gt; item.selectStatus !== true); }, toggleSelect: (state, action: PayloadActionlt;NoteIgt;) =gt; { return state.map((item) =gt; { if (item.id === action.payload.id) { return { ...item, selectStatus: !item.selectStatus }; } return item; }); }, loadDefault: (state) =gt; { return state.map((item) =gt; { return { ...item, selectStatus: false }; }); }, editNote: (state, action: PayloadActionlt;NoteIgt;) =gt; { return state.map((item) =gt; { if (item.id === action.payload.id) { return { ...item, note: action.payload.note, header: action.payload.header, date: action.payload.date, }; } return item; }); }, }, }); export default noteReducer.reducer; export const { addNote, removeNote, editNote, toggleSelect, loadDefault } = noteReducer.actions;
Теперь я хочу, чтобы каждый раз, когда я закрываю приложение, все состояние оставалось прежним, за исключением selectStatus
Магазин будет выглядеть так:
const reducer = combineReducers({ note: noteReducer, }); const persistConfig = { key: "root", storage: AsyncStorage, blacklist: [], }; const persistedReducer = persistReducer(persistConfig, reducer); const store = configureStore({ reducer: { persistedReducer, toggle: toggleReducer }, middleware: (getDefaultMiddleware) =gt; getDefaultMiddleware({ serializableCheck: false, }), }); export default store; export type RootState = ReturnTypelt;typeof store.getStategt;; export type AppDispatch = typeof store.dispatch; export const persistStorageNote = persistStore(store);
Я слышал об blacklist
этом в redux-persist, но пример только apple для состояния не похож на этот массив. Пожалуйста, помогите, большое спасибо