用一种字体包装整个 React Native 应用程序
Wrap Entire React Native App With One Font
我正在寻找一种简单的方法来用一种字体包装我的整个 React 本机应用程序,但我找不到有关执行此操作的最佳方法的文档。
有没有人有任何建议或参考我可以通读?大多数情况下,我正在阅读的是我需要制作一个新的文本文件,然后为每个文本元素导入字体,这不是我想要做的。
我已经通读过的参考资料:
https://medium.com/@fasterpancakes/react-native-row-how-to-wrap-components-and-avoid-stylesheets-99406e068357
https://reactnative.dev/docs/text
https://ospfolio.com/two-way-to-change-default-font-family-in-react-native/
我想做这样的事情:
import {useFonts} from "@use-expo/font";
import {AppLoading} from "expo";
...
const App = createAppContainer(switchNavigator);
export default () => {
const [fontsLoaded] = useFonts({
"Raleway-Bold": require("./assets/fonts/Raleway-Bold.ttf"),
"Raleway-Medium": require("./assets/fonts/Raleway-Medium.ttf"),
"Raleway-Regular": require("./assets/fonts/Raleway-Regular.ttf"),
});
if (!fontsLoaded) {
return <AppLoading />;
}
return (
<AuthProvider>
<App
ref={(navigator) => {
setNavigator(navigator);
}}
style={{fontFamily: "Raleway-Bold"}}
/>
</AuthProvider>
);
};
你能不能只用你需要的所有默认样式制作一个自定义组件,然后在任何地方使用它而不是 <Text>
// DefaultText.jsx
import React from "react";
import { StyleSheet } from "react-native";
const DefaultText = props => <Text style={styles.defaultText}>{props.children}</Text>;
const styles = StyleSheet.create({
defaultText: {
fontFamily: "Raleway-Bold",
},
});
export default DefaultText;
// SomeComponent.jsx
import React from "react";
import DefaultText from "./DefaultText";
const SomeComponent = props => (
<View>
<DefaultText>This should be in Raleway-Bold</DefaultText>
</View>
);
export default SomeComponent;
我正在寻找一种简单的方法来用一种字体包装我的整个 React 本机应用程序,但我找不到有关执行此操作的最佳方法的文档。
有没有人有任何建议或参考我可以通读?大多数情况下,我正在阅读的是我需要制作一个新的文本文件,然后为每个文本元素导入字体,这不是我想要做的。
我已经通读过的参考资料: https://medium.com/@fasterpancakes/react-native-row-how-to-wrap-components-and-avoid-stylesheets-99406e068357 https://reactnative.dev/docs/text https://ospfolio.com/two-way-to-change-default-font-family-in-react-native/
我想做这样的事情:
import {useFonts} from "@use-expo/font";
import {AppLoading} from "expo";
...
const App = createAppContainer(switchNavigator);
export default () => {
const [fontsLoaded] = useFonts({
"Raleway-Bold": require("./assets/fonts/Raleway-Bold.ttf"),
"Raleway-Medium": require("./assets/fonts/Raleway-Medium.ttf"),
"Raleway-Regular": require("./assets/fonts/Raleway-Regular.ttf"),
});
if (!fontsLoaded) {
return <AppLoading />;
}
return (
<AuthProvider>
<App
ref={(navigator) => {
setNavigator(navigator);
}}
style={{fontFamily: "Raleway-Bold"}}
/>
</AuthProvider>
);
};
你能不能只用你需要的所有默认样式制作一个自定义组件,然后在任何地方使用它而不是 <Text>
// DefaultText.jsx
import React from "react";
import { StyleSheet } from "react-native";
const DefaultText = props => <Text style={styles.defaultText}>{props.children}</Text>;
const styles = StyleSheet.create({
defaultText: {
fontFamily: "Raleway-Bold",
},
});
export default DefaultText;
// SomeComponent.jsx
import React from "react";
import DefaultText from "./DefaultText";
const SomeComponent = props => (
<View>
<DefaultText>This should be in Raleway-Bold</DefaultText>
</View>
);
export default SomeComponent;