Теперь эта ошибка исправлена!
После строгого следования руководству Создание приложения для управления пользователями с помощью Expo React Native в документации супабазы и запуска веб-версии приложения я столкнулся со следующим сообщением об ошибке:
Uncaught TypeError: _index.default is undefined
в Firefox
Uncaught TypeError: Cannot destructure property 'PostgrestClient' of '_index.default' as it is undefined.
в Chrome
Это произошло только с веб-версией. Когда я запустил приложение в Expo Go на Android, оно работало отлично. Я попытался отладить код и сузил его до одного оператора импорта.
import { createClient } from "@supabase/supabase-js";
Только когда этот оператор импорта закомментирован, ошибка исчезает.
npx expo install react-dom react-native-web @expo/metro-runtime
npm start
в консоли и откройте URL-адрес локального хоста в браузере.Если вы хотите, чтобы приложение загружалось без ошибок, выполните следующие действия:
import AsyncStorage from "@react-native-async-storage/async-storage";
// import { createClient } from "@supabase/supabase-js";
const supabaseUrl = "...";
const supabaseAnonKey = "...";
// export const supabase = createClient(supabaseUrl, supabaseAnonKey, {
// auth: {
// storage: AsyncStorage,
// autoRefreshToken: true,
// persistSession: true,
// detectSessionInUrl: false,
// },
// });
export const supabase = "hello world";
export default function App() {
const [session, setSession] = useState<Session | null>(null);
// useEffect(() => {
// supabase.auth.getSession().then(({ data: { session } }) => {
// setSession(session);
// });
// supabase.auth.onAuthStateChange((_event, session) => {
// setSession(session);
// });
// }, []);
return (
<View>
{session && session.user ? (
<Account key = {session.user.id} session = {session} />
) : (
<Auth />
)}
</View>
);
}
Загрузите веб-страницу полностью без сообщения об ошибке Uncaught TypeError: _index.default is undefined
.
Я нашел еще одно упоминание об этой ошибке от пользователя Discord два дня назад здесь
Я начал выпуск GitHub здесь
Проблема связана с ошибкой в супабазе. Пока проблема не будет исправлена, вы можете обойти ее, установив и используя более старую версию @supabase/supabase-js. Запустите в терминале следующую команду, чтобы установить рабочую версию:
npm install @supabase/[email protected]
Проверьте, что ваш package.json ссылается на эту версию. Это должно выглядеть примерно так:
"@supabase/supabase-js": "^2.43.5",
Спасибо Алистеру за то, что нашли обходной путь. Исходное сообщение смотрите здесь