gpt4 book ai didi

javascript - null 不是对象(评估 'RCTAsyncStorage.multiMerge' )

转载 作者:行者123 更新时间:2023-12-05 00:33:28 29 4
gpt4 key购买 nike

我最近升级到 Expo SDK 43。
我现在收到此错误:

抛出它的代码行是:

if (!RCTAsyncStorage.multiMerge) {
我使用的是最新版本的 AsyncStorage。
这似乎是由于我使用了 firebase-js-sdk。
不幸的是,因为这是一个 iOS/Android/Web 项目,所以它是必要的。
当我模拟我的 Firebase 导出时,一切正常:
const auth = () => {};

const analytics = () => {};

export default { auth, analytics };
但是当我使用 firebase-js-sdk 函数时,我收到了上述消息。
此代码会导致错误(无论我使用哪个版本的身份验证)
let auth = initializeAuth(config, {
persistence: getReactNativePersistence(AsyncStorage),
});
//let auth = getAuth(config);
let analytics = getAnalytics(config);

export default { auth, analytics };

最佳答案

您可以通过添加可选链接(问号“?”)来避免该特定错误:

if (!RCTAsyncStorage?.multiMerge) {
它将短路到 undefined (从而使 if false )而不是在尝试 checkin 空对象时抛出错误。
至于为什么 RCTAsyncStorage将为空,你必须检查你第一次获取/声明它的位置,并回溯到它没有加载的点,也许你正在使用与 firebase-js-sdk 冲突的东西。
还有 multiMerge正如 docs 中提到的那样,可能并不总是被支持。 :

multiMerge
[...] NOTE: This is not supported by all native implementations.

关于javascript - null 不是对象(评估 'RCTAsyncStorage.multiMerge' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70140535/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com