리덕스를 세팅하면서 useSelector로 state값이 잘 들어오나 확인하려고 state전체를 가져와서 통째로 리턴했더니 불필요한 렌더링이 일어났다며 전체 state를 반환하는 Selector는 상태가 변경될 때마다 다시 렌더링되니까 주의하라는 메세지가 떴어.
발생한 경고
Selector unknown returned the root state when called. This can lead to unnecessary rerenders.
Selectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.
원인 코드
import { useSelector } from "react-redux";
function App() {
// 여기에서 store에 접근해서, counter의 값을 읽어오고 싶어.
const data = useSelector((state) => {
return state;
});
console.log(data);
return <div>redux</div>;
}
export default App;
문제 : 한꺼번에 useSelector로 state값 전체를 가져오려고 해서 난 문제야(전체를 가져와서 리턴했어)
해결:
const counter = useSelector((state) => {
return state.counter;
});
console.log(counter.number);
리턴할 땐 전체 state를 리턴하지 말고 그 안의 필요한 state를 리턴해야 해.
*참고사이트
'개발일지' 카테고리의 다른 글
[TIL] 23_0130 Redux -Action Value Creator (0) | 2024.01.30 |
---|---|
[TIL] 24_0129 useDispatch의 역할 (2) | 2024.01.29 |
[TIL] 23_0127 useContext(context API) (0) | 2024.01.27 |
[TIL] 24_0126 리액트에서의 map사용, key prop 오류 (0) | 2024.01.26 |
[TIL] 두 번째 개인 프로젝트 피드백 반영, 베이직 과제 후 (0) | 2024.01.25 |