#javascript #reactjs #react-native #redux #redux-persist
#язык JavaScript #реагирует на #реагировать-родной #возвращение #переделать-сохраниться
Вопрос:
Я делаю приложение для заметок, используя инструментарий redux (или сокращенно redux) и используя redux-сохранение для сохранения состояния при сбросе , все работает хорошо, ожидайте функции удаления.
Так вот как выглядит мой редуктор
export interface NoteI { id?: number | Date; header?: string; note?: string; date?: Date; selectStatus?: boolean; } 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;
И мой магазин
const reducer = combineReducers({ note: noteReducer, }); const persistConfig = { key: "root", storage: AsyncStorage, }; 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);
Проблема в том, я хочу удалить хайлайтер сразу, так что я делаю, когда пользователь нажимает на пункт, selectStatus
от false
К true
, но проблема в том, когда я закрываю приложение и снова открыть, то selectStatus
остаются true
и если я нажимаю удалить, он удаляет предыдущие элемента означает, что элемент, который пользователь может выбрать и раньше, но по какой-то причине они не делают, и они закрыть приложение, открыть, удалить друга, и предыдущие тоже нет, потому что они остаются «true» в «selectStatus»
Я попытался в своем основном файле:
useEffect(() =gt; { dispatch(loadDefault); }, []);
Но оставайтесь прежними! Тогда мой вопрос в том, как сбросить slelectStatus
, но все остальное останется прежним, когда я снова открою приложение в redux-toolkit
Большое вам спасибо