¿Existe un equivalente a este CSS en React Native, de modo que la aplicación use la misma fuente en todas partes?
body {
font-family: 'Open Sans';
}
Aplicarlo manualmente en cada nodo de texto parece demasiado complicado.
react-native
Dagobert Renouf
fuente
fuente

Respuestas:
La forma recomendada es crear su propio componente, como MyAppText. MyAppText sería un componente simple que representa un componente de texto usando su estilo universal y puede pasar por otros accesorios, etc.
https://facebook.github.io/react-native/docs/text.html#limited-style-inheritance
fuente
render()lugar del constructor. Usar ganchos conuseMemotambién podría ayudar si la eficiencia es importante. Alternativamente, si desea mantenerlo en el constructor, es importante agregar unacomponentDidUpdatelógica que se actualicethis.stylecuando el componente se actualice debido a un cambio de estilo.Recientemente se creó un módulo de nodo que resuelve este problema para que no tenga que crear otro componente .
https://github.com/Ajackster/react-native-global-props
https://www.npmjs.com/package/react-native-global-props
La documentación indica que en su componente de mayor orden, importe la
setCustomTextfunción como tal.Luego, cree el estilo / accesorios personalizados que desee para el
Textcomponente react-native . En su caso, le gustaría que fontFamily funcione en todos losTextcomponentes.Llame a la
setCustomTextfunción y pase sus accesorios / estilos a la función.Y luego todos los
Textcomponentes de react-native tendrán su fontFamily declarada junto con cualquier otro accesorio / estilo que proporcione.fuente
<Text style={styles.text}>? No es una solución perfecta como esa, ¿body {font-family: 'Open Sans';}tiene alguna solución de actualización?Text style={styles.text}>. Solo necesita declarar sus accesorios personalizados en algún lugar de su aplicación y se aplicará a todos sus componentes de texto. Es muy similar abody {font-family: ....}Para React Native 0.56.0+, compruebe si defaultProps se define primero:
Luego añade:
Agregue lo anterior en el constructor del archivo App.js (o cualquier componente raíz que tenga).
Para anular el estilo, puede crear un objeto de estilo y difundirlo y luego agregar su estilo adicional (por ejemplo
{ ...baseStyle, fontSize: 16 })fuente
defaultPropsno existía cuando se escribieron todas las demás respuestas, pero esta parece ser la forma de hacerlo ahora.styleutilería, digamos, para modificar estilos deTextcomponentes particularesstyleaccesorio en el componente Texto, se reemplazará la fuente predeterminada.Puede anular el comportamiento de Text agregando esto en cualquiera de sus componentes usando Text:
Editar: desde React Native 0.56,
Text.prototypeya no funciona. Necesitas eliminar.prototype:fuente
Añadir
en
package.jsonluego correreact-native linkfuente
Con React-Native 0.56, el método de cambio anterior
Text.prototype.renderya no funciona, por lo que debe usar su propio componente, ¡que se puede hacer en una línea!MyText.js
AnotherComponent.js
fuente
useRef. reactjs.org/docs/hooks-reference.html#userefAgregue esta función a su
Appcomponente raíz y luego ejecútela desde su constructor después de agregar su fuente siguiendo estas instrucciones. https://medium.com/react-native-training/react-native-custom-fonts-ccc9aacf9e5efuente
const App = StackNavigator({...})yexport default Appdónde exactamente iba a colocar este código ya que no creo que pueda utilizar un constructor aquí?Súper tarde para este hilo pero aquí va.
TLDR; Agregue el siguiente bloque en su
AppDelegate.mTutorial de todo el flujo.
Algunas formas en las que puede hacer esto además de usar un complemento como,
react-native-global-propsasí que lo guiaré paso a paso.Añadiendo fuentes a las plataformas.
Cómo agregar la fuente al proyecto IOS
Primero, creemos una ubicación para nuestros activos. Hagamos el siguiente directorio en nuestra raíz.
''
''
Ahora agreguemos un NPM "React Native" en nuestro package.json
Ahora podemos ejecutar "react-native link" para agregar nuestros activos a nuestras aplicaciones nativas.
Verificando o haciendo manualmente.
Eso debería agregar sus nombres de fuente en los proyectos
.plist(para que los usuarios del código VS corrancode ios/*/Info.plistpara confirmar)Aquí supongamos que
Verlages la fuente que agregó, debería verse así:Ahora que los asignó, ahora asegurémonos de que estén realmente allí y se estén cargando (así es también como lo haría manualmente).
Vaya a
"Build Phase" > "Copy Bundler Resource", si no funcionó, agregará manualmente debajo de ellos aquí.Obtener nombres de fuentes (reconocidos por XCode)
Primero abra sus registros de XCode, como:
Luego puede agregar el siguiente bloque en su
AppDelegate.mpara registrar los nombres de las fuentes y la familia de fuentes.Una vez que ejecutes deberías encontrar tus fuentes si se cargan correctamente, aquí encontramos las nuestras en registros como este:
Así que ahora sabemos que cargó la
Verlagfamilia y son las fuentes dentro de esa familia.Verlag-BookVerlag-BlackItalicVerlag-BoldItalicVerlag-XLightVerlag-BoldVerlag-BlackVerlag-XLightItalicVerlag-LightItalicVerlag-BookItalicVerlag-LightEstos son ahora los nombres sensibles a mayúsculas y minúsculas que podemos usar en nuestra familia de fuentes que podemos usar en nuestra aplicación nativa de reacción.
Got -'em ahora establece la fuente predeterminada.
Luego, para establecer una fuente predeterminada para agregar su nombre de familia de fuentes en su
AppDelegate.mcon esta líneaHecho.
fuente
Establecer en package.json
Y vincular el vínculo nativo de reacción
fuente
Eso funciona para mí: Agregar fuente personalizada en React Native
descargue sus fuentes y colóquelas en la carpeta assets / fonts, agregue esta línea en package.json
luego abra la terminal y ejecute este comando: react-native link
Ahora estás listo para comenzar. Para un paso más detallado. visite el enlace mencionado anteriormente
fuente