react-native use turboModule in app not as a libray in node_modules folder work fail, js file can not find the turboModule

hmtdttj4  于 3个月前  发布在  React
关注(0)|答案(3)|浏览(75)

描述

  1. 在应用中使用 newArch。
  2. 在应用中创建一个 turboModule,但不要将其作为外部文件夹中的库,然后将 yard 添加到 node_module 中以作为库(作为库无法使用 app src 和 feacture )。
  3. 修改根 package.json 以添加 codegenConfig
    在 JavaScript 中添加 Define Specs 的 js 文件。
    运行 ./gradlew generateCodegenArtifactsFromSchema 以生成 jni 文件。
    创建并实现 turboModule 和 TurboReactPackage。
    将 TurboReactPackage 添加到 ReactNativeHost 包列表中。
  4. 修改 App.tsx,导入 turboModule,添加一个按钮,按下按钮时调用 turboModule 函数,崩溃。错误是能找到 turboModule。

重现步骤

  1. 使用 'yarn android' 安装应用程序。
  2. 点击主页上的“COMPUTE”按钮。
  3. 注意崩溃,点击错误提示。

React Native 版本

0.73.7

受影响的平台

运行时 - Android,构建 - Windows

领域

TurboModule - 新的本地模块系统

npx react-native info 的输出

info Fetching system and libraries information...
System:
  OS: Windows 10 10.0.19045
  CPU: (8) x64 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
  Memory: 1.80 GB / 15.71 GB
Binaries:
  Node:
    version: 20.11.1
    path: D:\Programs\nodejs\node.EXE
  Yarn:
    version: 1.22.21
    path: D:\Programs\nodejs\node_modules\node_modules\yarn\bin\yarn.CMD
  npm:
    version: 10.2.4
    path: D:\Programs\nodejs\npm.CMD
  Watchman: Not Found
SDKs:
  Android SDK: Not Found
  Windows SDK:
    AllowDevelopmentWithoutDevLicense: Enabled
IDEs:
  Android Studio: Not Found
  Visual Studio: Not Found
Languages:
iOS:
  hermesEnabled: Not found
  newArchEnabled: Not found

info React Native v0.74.0 is now available (your project is running on v0.73.6).
info Changelog: https://github.com/facebook/react-native/releases/tag/v0.74.0
info Diff: https://react-native-community.github.io/upgrade-helper/?from=0.74.0
info For more info, check out "https://reactnative.dev/docs/upgrading?os=windows".

堆栈跟踪或日志

LOG  Running "ReproducerApp" with {"rootTag":21,"initialProps":{"concurrentRoot":true},"fabric":true}

TypeError:Cannot read property 'add' of null

source 
const value = await RTNCalclator.add(3, 7);

可复现性

https://github.com/ncwuguowei/reproducer-react-native

截图和视频

ufj5ltwl

ufj5ltwl1#

⚠️React Native的新版本可用!
i️您正在使用受支持的次要版本,但似乎有一个更新的补丁可用 - 0.73.7。请升级到您次要版本的最高补丁或最新版本,并验证问题是否仍然存在(或者,创建一个新项目并在其中重现问题)。如果无法重现,请告知我们,以便我们关闭此问题。这有助于确保我们关注仍在最近版本中存在的问题。
cbeh67ev

cbeh67ev2#

将React版本升级到0.73.7,问题仍然存在。

gc0ot86w

gc0ot86w3#

你好,@ncwuguowei!
在新的架构的文档中是否有描述我们可以创建一个不像库(外部文件夹)的turbo模块的地方?

相关问题