Оберните все приложение React Native одним шрифтом - PullRequest
0 голосов
/ 18 июня 2020

Я ищу простой способ обернуть все мое собственное приложение React одним шрифтом, но у меня возникают проблемы с поиском документации о том, как это сделать.

Есть ли у кого-нибудь предложения или ссылки, которые я могу прочитать? В основном я читаю то, что мне нужно создать новый текстовый файл, а затем импортировать шрифт для каждого текстового элемента, а это не то, что я хочу делать.

Ссылки, которые я уже прочитал: https://medium.com/@fasterpancakes / react-native-row-how-to-wrap-components-and-escape-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>
  );
};

1 Ответ

2 голосов
/ 18 июня 2020

Не могли бы вы просто создать собственный компонент со всеми необходимыми стилями по умолчанию, а затем использовать его везде вместо <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;
...