Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- listener 1883
- 맥 어드레스
- mosquitto.conf
- mySQL_Replication
- 서버동기화
- DataGridView 직접 입력
- timepicker
- setInterval 중지
- 공인IP
- Replication
- mosquitto
- html #select #option #multiple
- setInterval clear
- pm2 설치
- pm2 확인
- AntDesign
- setInterval 정지
- 1883
- 데이터테이블 데이터 넣기
- map이 undefined가 뜰 때
- datagridview 직접입력
- pm2 시작
- DatePicker
- invalid data
- allow_anonymouse
- pm2 상태 확인
- transfer
- pm2
- c# datagridview 데이터 넣기
- setInterval 외부 정지
Archives
- Today
- Total
개발 노트
React - zustand middleware - persist 본문
Localstorage에 정보를 저장하기위해선 setitem, getitem, useeffect등을 써서 저장을 해주고,
새로고침해도 변화가 안되게 만들었었는데,
zustand의 middleware인 persist를 사용하면 자동으로 Localstorage에 저장하고 유지해준다.
하지만 잘못된 값이 들어간경우 화면이 공백으로 표시되니 Localstorage에 들어가서 데이터를 삭제해줘야한다.
export const useStore = create(
persist((set) => ({
todos: [],
addTodo: (todoText) =>
set((state) => ({
todos: [
...state.todos,
{
text: todoText,
id: uuid(),
isCompleted: false,
edit: false,
},
],
})),
deleteTodo: (todoId) =>
set((state) => ({
todos: state.todos.filter((todo) => todo.id !== todoId),
})),
completeTodo: (todoId) =>
set((state) => ({
todos: state.todos.map((todo) => {
if (todo.id === todoId) {
if (todo.isCompleted === false) {
return { ...todo, isCompleted: true };
} else if (todo.isCompleted === true) {
return {
...todo,
isCompleted: false,
};
}
}
return todo;
}),
})),
editTodo: (todoId) => {
set((state) => {
return {
todos: state.todos.map((todo) =>
todo.id === todoId ? { ...todo, edit: !todo.edit } : todo
),
};
});
},
controlTodo: (todoId, text) => {
set((state) => {
return {
todos: state.todos.map((todo) =>
todo.id === todoId ? { ...todo, text } : todo
),
};
});
},
}))
);
위의 코드는 zustand의 store를 만든 코드인데 두번 째줄에 보면 persist로 전체를 감싸는 방식으로 사용하면 된다.
간편하고 쉽고 좋다.
'React' 카테고리의 다른 글
React - iterable object error (0) | 2022.11.27 |
---|---|
Html tag- data-set (0) | 2022.11.27 |
React - uuid Library (0) | 2022.11.16 |
Styled-Component (0) | 2022.11.11 |
React - Routing (0) | 2022.11.11 |