React Native Codegen 为啥生成不了新组件?

Zz志鸣 阅读 4

我按照官方文档加了个新 NativeComponent,但运行 yarn react-native codegen 后没看到任何输出文件,也没报错,这正常吗?

我的组件定义在 src/components/MyViewNativeComponent.js,里面用了 codegenNativeComponent,还配了 package.json 里的 "codegenConfig"。试过删 node_modules 重装、清理缓存都不行。

这是我的 codegenConfig 配置:

{
  "name": "MyAppSpecs",
  "type": "modules",
  "jsSrcsDir": "src",
  "android": {
    "javaPackageName": "com.myapp"
  }
}
我来解答 赞 4 收藏
二维码
手机扫码查看
1 条解答
东方好妍
这问题我熟,React Native codegen配置确实挺容易踩坑的。你这种情况八成是路径配置有问题。

首先确认下你的组件文件是不是真的符合codegen要求,必须要有明确的Flow或TypeScript类型定义。比如你的MyViewNativeComponent.js应该长这样:

import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
import type {ViewProps} from 'react-native';

interface NativeProps extends ViewProps {
someProp?: string;
}

export default codegenNativeComponent('MyView');


重点检查几点:
1. package.json里的codegenConfig要放在最外层,不是dependencies里
2. jsSrcsDir路径要写对,你写成src是对的,但确保组件确实在这个目录下
3. 跑codegen时记得加上--path参数指定项目根目录,比如yarn react-native codegen --path .

还有个常见坑是忘了在babel.config.js里配好react-native代码转换插件,至少要确保有@babel/plugin-transform-flow-strip-types

实在不行的话,试试老办法:在android目录下手动执行gradlew clean,然后重新跑codegen。这破工具链有时候就是欠收拾。
点赞
2026-03-05 12:38