gpt4 book ai didi

javascript - React Native 0.18.1 在所有 View 上使用自定义字体

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:42:03 27 4
gpt4 key购买 nike

我刚刚升级到 RN 0.18.1,我以前在我的应用程序中使用自定义字体的方式不再适用。有什么解决方法吗?

我曾经这样做过:

import React, {AppRegistry, Component, StyleSheet, Text, View, TextInput} from 'react-native';

var OldText = Text;

class NewText extends OldText {
defaultProps = {
customFont: false
};

render() {
var props = _.clone(this.props);

if (this.props.customFont) {
return super.render();
}

if (_.isArray(this.props.style)){
props.style.push({fontFamily: 'Quicksand-Regular'});
} else if (props.style) {
props.style = [props.style, {fontFamily: 'Quicksand-Regular'}];
} else {
props.style = {fontFamily: 'Quicksand-Regular'};
}

this.props = props;

return super.render();
}
};

React.Text = NewText;

现在在最后一行 React.Text = NewText 上,我收到错误:“尝试分配给只读属性”。现在对如何使用自定义字体有什么想法吗?

最佳答案

感谢@Ben Clayton 的回答。现在正确的做法是创建一个新组件 (NewText),例如,它是 React.Text 的子类,并使用它而不是在整个应用程序中使用它。

我的新文本看起来像这样:

'use strict';

import React, {Text} from 'react-native';

import _ from 'lodash';

class NewText extends Text {
defaultProps = {
customFont: false
};

render() {
var props = _.clone(this.props);

if (this.props.customFont) {
return super.render();
}

if (_.isArray(this.props.style)){
props.style.push({fontFamily: 'Quicksand-Regular'});
} else if (props.style) {
props.style = [props.style, {fontFamily: 'Quicksand-Regular'}];
} else {
props.style = {fontFamily: 'Quicksand-Regular'};
}

this.props = props;

return super.render();
}
};

export default NewText;

关于javascript - React Native 0.18.1 在所有 View 上使用自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35018835/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com