How to set default font family in React Native?

后端 未结 10 988
鱼传尺愫
鱼传尺愫 2020-11-29 00:25

Is there an equivalent to this CSS in React Native, so that the app uses the same font everywhere ?

body {
  font-family: \'Open Sans\';
}

相关标签:
10条回答
  • 2020-11-29 01:08

    That works for me: Add Custom Font in React Native

    download your fonts and place them in assets/fonts folder, add this line in package.json

     "rnpm": {
    "assets": ["assets/fonts/Sarpanch"]}
    

    then open terminal and run this command: react-native link

    Now your are good to go. For more detailed step. visit the link above mentioned

    0 讨论(0)
  • 2020-11-29 01:10

    There was recently a node module that was made that solves this problem so you don't have to create another component.

    https://github.com/Ajackster/react-native-global-props

    https://www.npmjs.com/package/react-native-global-props

    The documentation states that in your highest order component, import the setCustomText function like so.

    import { setCustomText } from 'react-native-global-props';
    

    Then, create the custom styling/props you want for the react-native Text component. In your case, you'd like fontFamily to work on every Text component.

    const customTextProps = { 
      style: { 
        fontFamily: yourFont
      }
    }
    

    Call the setCustomText function and pass your props/styles into the function.

    setCustomText(customTextProps);
    

    And then all react-native Text components will have your declared fontFamily along with any other props/styles you provide.

    0 讨论(0)
  • 2020-11-29 01:11

    With React-Native 0.56, the above method of changing Text.prototype.render does not work anymore, so you have to use your own component, which can be done in one line!

    MyText.js

    export default props => <Text {...props} style={[{fontFamily: 'Helvetica'}, props.style]}>{props.children}</Text>
    

    AnotherComponent.js

    import Text from './MyText';
    
    ...
    <Text>This will show in default font.</Text>
    ...
    
    0 讨论(0)
  • 2020-11-29 01:19

    For React Native 0.56.0+ check if defaultProps is defined first:

    Text.defaultProps = Text.defaultProps || {}
    

    Then add:

    Text.defaultProps.style =  { fontFamily: 'some_font' }
    

    Add the above in the constructor of the App.js file (or any root component you have).

    In order to override the style you can create a style object and spread it then add your additional style (e.g { ...baseStyle, fontSize: 16 })

    0 讨论(0)
提交回复
热议问题