react-native - 在使用 NSString 的 Expo Eject 错误后 React Native 无法转换为 NSNumber

标签 react-native expo

我最初有一个 Expo 管理的项目,但由于我需要添加订阅服务,所以我不得不将其弹出。世博会管理期间​​一切顺利。现在,我的应用程序可以用“expo start”打开,它在 iOS 模拟器中打开应用程序,我没有任何错误消息。一切都按预期工作。当我构建为 native 应用程序时出现问题,它出错了

JSON value '3000' of type NSString cannot be converted to NSNumber

+[RCTConvert NSNumber:]
    RCTConvert.m:60
+[RCTConvert double:]
RCTBridgingToDouble(objc_object*)
JS::NativeNetworkingIOS::SpecSendRequestQuery::timeout() const
-[RCTNetworking sendRequest:callback:]
__invoking___
-[NSInvocation invoke]
-[NSInvocation invokeWithTarget:]
-[RCTModuleMethod invokeWithBridge:module:arguments:]
facebook::react::invokeInner(RCTBridge*, RCTModuleData*, unsigned int, folly::dynamic const&)
facebook::react::RCTNativeModule::invoke(unsigned int, folly::dynamic&&, int)::$_0::operator()() const
invocation function for block in facebook::react::RCTNativeModule::invoke(unsigned int, folly::dynamic&&, int)
_dispatch_call_block_and_release
_dispatch_client_callout
_dispatch_lane_serial_drain
_dispatch_lane_invoke
_dispatch_workloop_worker_thread
_pthread_wqthread
start_wqthread

我试图在我的项目中搜索值“3000”,但找不到任何内容。我知道它以某种方式在某处提供数字 3000 作为无法转换为数字的字符串。同样,此问题仅作为 native 构建出现。世博会工作得很好。我现在也不知道我将如何调试这个......

最佳答案

我终于解开了谜团。在这里为遇到此问题的任何其他人发布答案。

如果你确实有一个 expo 管理的项目并且你弹出它并且你在 NSString cannot be converted to NSNumber for iOS 或 java.lang.String cannot be cast to java.lang.double 检查你的 .env 文件。在我的例子中,我设置了 API_REQUEST_TIMEOUT = '3000' 并将其用于 axios

const instance = axios.create({
  baseURL: API_URL,
  timeout: API_REQUEST_TIMEOUT,
});

3000 没有出现在我的搜索中,因为它在我的 .env 文件中。并且此错误消息消失了,因为我相信当在 React Native 调试器中激活网络检查时,它将覆盖请求超时。如果您遇到此问题,请仔细检查您的 .env 文件。

修复:

const instance = axios.create({
  baseURL: API_URL,
  timeout: 3000,
});

请注意,超时值不会作为字符串传递。

关于react-native - 在使用 NSString 的 Expo Eject 错误后 React Native 无法转换为 NSNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65532826/

相关文章:

react-native - 如何将边框半径应用于 Expo LinearGradient 组件的某些角

react-native - 坚持 100% 下载 Javascript 包 - Expo

react-native - 在使用 Firebase 身份验证的 Expo React native 应用程序中添加 “Sign In with Apple”

android - 如何修复以下错误 : A problem occurred evaluating project ':app' . > 没有方法签名:

ios - 我可以使用命令重新加载我的 React Native 应用程序吗?

android - getZoom 和 getVisibleBounds 方法永远不会在 @mapbox/react-native-mapbox-gl Android 中解析

javascript - TypeError - 网络请求失败(没有提示问题出在哪里)

reactjs - 如何修复: Error: ENOENT: no such file or directory 'src/node_modules/native-base/Fonts'

android - 崩溃后的 react native 应用程序显示闪屏

android - 如何修复此问题 : Object are not valid as a React Child