프론트엔드 정복하기
Toolkit Selector 개념 정리 본문
createSelector
- Selector 의 인자는 Redux State state 의 전체를 가리킨다!
아래 코드를 보면, state 는 state 전체를 가리키는 것을 볼 수 있다!
import { createSelector } from '@reduxjs/toolkit'
import type { RootState } from '@/store'
import type { CreateReportParams } from '@/types/qna/report'
const selfState = (state: RootState) => state
const selectTarget = (
_state: RootState,
target: { id?: number; type: CreateReportParams['type'] }
) => target
export const getDefaultReportReasons = createSelector(
[selfState, selectTarget],
(state, target) => {
const reportReasons = state.report. ....
return reportReasons.filter((item) => item.categoryId === null)
}
)
- Reducer 는 Redux state 중 특정 상태에 접근한다!
const reportSlice = createSlice({
extraReducers: (builder) => { ... },
initialState: { ... },
name: 'qna/report',
reducers: {
selectDetailReason: (state, action) => {
state.selectedDetailReason = action.payload
}
}
})
useSelector 최적화하는 방법
https://blog.woolta.com/categories/1/posts/200
prev, next. 비교 / shallowEqual ...
useSelector 에 여러 개 인자 받기
https://redux.js.org/usage/deriving-data-selectors
'React > 라이브러리' 카테고리의 다른 글
toolkit api 중간에 취소하기 (0) | 2022.02.28 |
---|---|
redux에서 불변성을 유지하며 데이터 추가 및 삭제 하는법 (0) | 2021.03.28 |
Redux | payload 관련 깨알팁 (0) | 2021.03.23 |
React 뒤로가기, 캐시 API (0) | 2020.10.24 |
Redux-Persist (0) | 2020.10.23 |