React Native Codegen 为啥生成不了新组件?
我按照官方文档加了个新 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"
}
}
首先确认下你的组件文件是不是真的符合codegen要求,必须要有明确的Flow或TypeScript类型定义。比如你的MyViewNativeComponent.js应该长这样:
重点检查几点:
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。这破工具链有时候就是欠收拾。