我每次运行我的应用程序时都使用 reduxtoolkit 的 useSelector 。我的应用程序重新渲染了 5 次,并且不断收到此错误。我似乎找不到一种方法来摆脱这个错误。
选择器在调用时会返回根状态。这可能会导致不必要的重新渲染。返回整个状态的选择器几乎肯定是一个错误,因为每当状态发生任何变化时它们都会导致重新渲染。
AppNavigator.tsx
const AppNavigator: FC<Props> = props => {
const {loggedIn, busy} = useSelector(getAuthState);
const dispatch = useDispatch();
console.log('render');
useEffect(() => {
const fetchAuthInfo = async () => {
try {
dispatch(updateBusyState(true));
const token = await getFromAsyncStorage(Keys.AUTH_TOKEN);
if (!token) {
return dispatch(updateBusyState(false));
}
const {data} = await client.get('/auth/is-auth', {
headers: {
Authorization: 'Bearer ' + token,
},
});
dispatch(updateProfile(data.profile));
dispatch(updateLoggedInState(true));
} catch (error) {
console.log('Auth error: ', error);
}
dispatch(updateBusyState(false));
}; …Run Code Online (Sandbox Code Playgroud)