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
- allow_anonymouse
- pm2 상태 확인
- 서버동기화
- setInterval 정지
- pm2
- pm2 설치
- 공인IP
- 1883
- transfer
- timepicker
- datagridview 직접입력
- mosquitto
- AntDesign
- html #select #option #multiple
- listener 1883
- Replication
- DataGridView 직접 입력
- invalid data
- setInterval clear
- DatePicker
- c# datagridview 데이터 넣기
- pm2 시작
- 맥 어드레스
- setInterval 외부 정지
- mosquitto.conf
- pm2 확인
- mySQL_Replication
- map이 undefined가 뜰 때
- 데이터테이블 데이터 넣기
- 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 |