Я только что обновил до 0.18.1 RN, и способ, которым я работал с пользовательскими шрифтами в моем приложении, больше не работает. Есть ли обходной путь?React Native 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
, я получаю ошибку: «Покушение присвоить ReadOnly свойство». Любые мысли о том, как использовать пользовательские шрифты сейчас?
Вы можете экспортировать NewText и использовать вместо всей рендеринге методов, но это не совсем так аккуратно, как то, что вы делали. –
Да, это то, что я думал, но мне было интересно, был ли какой-нибудь другой способ «чище». Я думаю, что способ сделать это - добавить шрифт в стиль каждого тега Text, но это займет некоторое время. –
Документы «повторно используемые компоненты» предлагают подклассирование для достижения этого, то есть с использованием компонента. Я создал компоненты Text для каждого из стилей шрифта, используемых в приложении (TextHeader, TextInfo и т. Д.). –