不幸的是,没有直接的方法可以按照您的要求进行操作。
使用平台
您可以使用 Platform react native API 为每个应用程序定义自定义代码,这些文档可以在 RN 文档中找到。使用此 API,您可以检查当前平台并为每个平台定义代码。
import { Platform, StyleSheet } from 'react-native';
const styles = StyleSheet.create({ height: (Platform.OS === 'ios') ? 200 : 100, });
或者您也可以使用 platform.select 为每个平台定义一些代码
import { Platform, StyleSheet } from 'react-native';
const styles = StyleSheet.create({
container: {
flex: 1,
...Platform.select({
ios: {
backgroundColor: 'red',
},
android: {
backgroundColor: 'blue',
},
}),
},
使用特定的文件扩展名
您可以使用 filename.ios.js 或 filename.android.js 命名每个 js 文件,它们将在每个平台中自动调用。
使用环境
除了平台之外,在许多情况下,我喜欢定义一个环境模块,它允许我根据我选择的环境交换一些值。例如:
- environment
/environment.js
/state.js
在 environment.js 中,我保存了可用的状态键和当前选择的环境:
环境.js
export const environments = {
pre: "PRE_ENV",
prod: "PROD_ENV",
};
export const currentEnvironment = environments.pre;
然后在 state.js 中我喜欢存储一些助手来检查我在哪个环境中:
state.js
import { currentEnvironment, environments } from "./environment";
export const isProductionEnvironment = () => {
return environments.prod === currentEnvironment;
};
export const isPreEnvironment = () => {
return environments.pre === currentEnvironment;
};
现在您可以在新文件中创建一些与环境相关的代码,例如:
问候.js
import { environments, currentEnvironment } from "./environment";
export const selectGreeting = () => {
switch(currentEnvironment) {
case environments.pre:
return "Welcome to the pre environment";
case environments.prod:
return "Welcome to the prod environment";
default:
return "Unsupported Environment";
}
};
要管理您的 app.js,没有漂亮的解决方案,您可以将一些默认 app.js 存储到某个环境并复制粘贴它,或者您可以使用:
https ://github.com/oliverbenns/expo-deploy
这是一个用 bash 编写的小库,可帮助您部署到多个 slug。
希望能帮助到你!