如何一次性全局设置自定义字体系列并在整个react-native应用程序中使用,而无需调用每个文本'零件?

时间:2018-02-27 06:06:41

标签: react-native react-native-android react-native-ios

根据此stack overflow解决方案,可以通过在每个Text组件中调用自定义字体来使用自定义字体。但是,当我们的应用程序中有数千个Text组件时,我们可能会错过相同的字体系列。然后,在字体系列的情况下,我们会失去一致性。

因此,有没有办法通过不调用每个Text组件来使用自定义字体系列?

1 个答案:

答案 0 :(得分:0)

您可以通过在任何使用 Text 的组件中添加此内容来覆盖 Text 行为:

编辑:将此代码添加到您的 App.js 或主文件中

let oldRender = Text.render;
Text.render = function (...args) {
    let origin = oldRender.call(this, ...args);
    return React.cloneElement(origin, {
        style: [{color: 'red', fontFamily: 'Arial'}, origin.props.style]
    });
} 

对于 React Native 0.56 或以下版本,将此代码添加到您的 App.js 或主文件中

let oldRender = Text.prototype.render;
Text.prototype.render = function (...args) {
    let origin = oldRender.call(this, ...args);
    return React.cloneElement(origin, {
        style: [{color: 'red', fontFamily: 'Arial'}, origin.props.style]
    });
};

Referencecreate your own component, such as MyAppText. MyAppText 将是一个简单的组件,它使用您的通用样式呈现一个 Text 组件,并且可以通过其他道具等。