问题:
我有一个带有特定于平台的代码的反应本机自定义挂钩,我需要根据平台导入该代码。如果我像这样导入它import useWifi from 'hooks/use-wifi.android';,一切都会正常(在android上)。
我尝试过的:
按照 rn 针对平台特定代码的说明,我有以下文件结构
...
hooks
...
use-wifi.android.ts
use-wifi.ios.ts
...
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试像这样导入它时import useWifi from 'hooks/use-wifi';,打字稿类型检查未通过,并且我在 Metro 中收到此错误:
error: Error: Unable to resolve module `hooks/use-wifi` from `src/screens/home/index.tsx`: hooks/use-wifi could not be found within the project.
Run Code Online (Sandbox Code Playgroud)
我添加了一个use-wifi.d.ts文件
export * from './use-wifi.android';
export * from './use-wifi.ios';
Run Code Online (Sandbox Code Playgroud)
这允许tsc通过,但地铁仍然无法捆绑。
我想我可以有一个hooks/use-wifi.ts文件并将代码拆分在那里,但如果可能的话我宁愿这样做。