Запрос React с Localstorage TypeError: невозможно прочитать свойства со значением null ⇐ Javascript
-
Гость
Запрос React с Localstorage TypeError: невозможно прочитать свойства со значением null
Я получаю сообщение TypeError: невозможно прочитать свойства со значением null (чтение 'id'), хотя приложение работает правильно и данные не равны нулю.
когда я добавляю необязательную цепочку в useGetParcels(), ошибка пропадает, но я не могу получить данные или использовать validateQueries
Примечание. Я устанавливаю данные в localstorage после входа в систему
useGetParcels.tsx
import { getBikerParcels } из "@/models/bikerModels"; импортировать { getSenderParcels } из "@/models/senderModels"; импортировать {Пользователя} из "@/types/dataTypes"; импортировать { useQuery } из "@tanstack/react-query"; const useGetParcels = (userData: User) => { вернуть useQuery( ["пользовательские-посылки", userData?.id], асинхронный () => { пусть отдыхает; if (userData.type === "байкер") { res = ждут getBikerParcels(userData.id); } else if (userData?.type === "отправитель") { res = ждут getSenderParcels(userData.id); } const посылки = res.data.parcels; возврат посылок; }, { устаревшеевремя: 1000*60*100, включено: userData.id.length > 0, } ); }; экспортировать useGetParcels по умолчанию; Page.tsx
"использовать клиент"; импортировать React из «реагировать»; импортировать SenderTable из "./senderTable"; импортируйте useLocalStorage из "@/hooks/useLocalStorage"; импортировать BikerTable из "./bikerTable"; импортируйте useGetParcels из "@/hooks/queries/useGetParcels"; импортировать загрузку из "@/comComponents/Loading"; импортировать навигацию из "@/comComponents/Nav"; экспортировать функцию по умолчанию Dashboard() { const [userData] = useLocalStorage("userData", null); const {данные: посылки, isLoading, ошибка} = useGetParcels (userData); если (isLoading) { вернуть ; } возвращаться ( {userData?.type === "отправитель" && } {userData?.type === "отправитель" ? ( ) : ( )} ); }
Я получаю сообщение TypeError: невозможно прочитать свойства со значением null (чтение 'id'), хотя приложение работает правильно и данные не равны нулю.
когда я добавляю необязательную цепочку в useGetParcels(), ошибка пропадает, но я не могу получить данные или использовать validateQueries
Примечание. Я устанавливаю данные в localstorage после входа в систему
useGetParcels.tsx
import { getBikerParcels } из "@/models/bikerModels"; импортировать { getSenderParcels } из "@/models/senderModels"; импортировать {Пользователя} из "@/types/dataTypes"; импортировать { useQuery } из "@tanstack/react-query"; const useGetParcels = (userData: User) => { вернуть useQuery( ["пользовательские-посылки", userData?.id], асинхронный () => { пусть отдыхает; if (userData.type === "байкер") { res = ждут getBikerParcels(userData.id); } else if (userData?.type === "отправитель") { res = ждут getSenderParcels(userData.id); } const посылки = res.data.parcels; возврат посылок; }, { устаревшеевремя: 1000*60*100, включено: userData.id.length > 0, } ); }; экспортировать useGetParcels по умолчанию; Page.tsx
"использовать клиент"; импортировать React из «реагировать»; импортировать SenderTable из "./senderTable"; импортируйте useLocalStorage из "@/hooks/useLocalStorage"; импортировать BikerTable из "./bikerTable"; импортируйте useGetParcels из "@/hooks/queries/useGetParcels"; импортировать загрузку из "@/comComponents/Loading"; импортировать навигацию из "@/comComponents/Nav"; экспортировать функцию по умолчанию Dashboard() { const [userData] = useLocalStorage("userData", null); const {данные: посылки, isLoading, ошибка} = useGetParcels (userData); если (isLoading) { вернуть ; } возвращаться ( {userData?.type === "отправитель" && } {userData?.type === "отправитель" ? ( ) : ( )} ); }
Мобильная версия