Is there an equivalent to this CSS in React Native, so that the app uses the same font everywhere ?
body {
font-family: \'Open Sans\';
}
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
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.
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>
...
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 }
)