跨平台组件 react-native-web

Cross platform component react-native-web

我使用 react-native-web 并且我想创建跨平台组件。我想通过平台区分每个组件

所以我遵循了这个教程:https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/

我有 3 个文件 :
- friendsList.android.js
- friendsList.ios.js
- friendsList.web.js

而对于导入 FriendsList,在 index.android.jsindex.ios.js index.web.js 中:

Import FriendsList from './friendsList';

在 Ios 和 Android 上,它工作正常。但在网络上,它无法识别该文件。我实际上有 3 个解决方案:
- 导入时指定import FriendsList from './friendsList.web';
- 定义一个为每个平台调度的服务
- 或者 在 webpack 中定义一个别名:

 resolve: {
        alias: {
            'react-native': 'react-native-web',
            './friendsList': './friendsList.web',
        },
    },

有没有不用这种方法导入 .web 的方法?
也许它不认为那样做?

根据 react-native-web getting started 文档,您需要设置扩展。

resolve: {
  // Maps the 'react-native' import to 'react-native-web'.
  alias: {
    'react-native': 'react-native-web'
  },
  // If you're working on a multi-platform React Native app, web-specific
  // module implementations should be written in files using the extension
  // `.web.js`.
  extensions: [ '.web.js', '.js' ]
}