严格遵循supabase文档中的使用Expo React Native构建用户管理应用程序教程并运行该应用程序的网络版本后,我遇到了以下错误消息:
Uncaught TypeError: _index.default is undefined
在 Firefox 中
Chrome 中的Uncaught TypeError: Cannot destructure property 'PostgrestClient' of '_index.default' as it is undefined.
这种情况仅发生在网络版本中。当我在 Android 上的 Expo Go 中运行该应用程序时,它运行得非常好。 我尝试调试代码并将其范围缩小到单个导入语句
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
错误消息。
两天前,我只发现一位不和谐的用户提到了此错误这里
我已经开始了 github 问题这里
该问题是由于 supabase 中的错误造成的。在修复之前,您可以通过安装和使用旧版本的 @supabase/supabase-js 来解决此问题。 在终端中运行以下命令来安装工作版本:
npm install @supabase/[email protected]
检查您的 package.json 是否引用了此版本。它应该看起来像这样:
"@supabase/supabase-js": "^2.43.5",
感谢阿莱斯特找到了这个解决办法。请参阅原始消息此处