Я пытаюсь применить условное оформление к текстовым элементам. Текстовые значения извлекаются из реального API.
У меня есть приложение для отслеживания состояния поезда, которое возвращает «Good Service», «Minor Delay» и т. Д. Для каждой строки. Я хотел бы изменить стиль текста в зависимости от значения.
Если будет написано «Хорошее обслуживание», я сохраню текст в норме.
Если это говорит о чем-то еще, я хотел бы изменить его на красный шрифт.
Пожалуйста, смотрите мой прототип Экспо Снэк.
https://snack.expo.io/@leourushi/api+conditional-styling
Здесь я извлекаю информацию для каждой линии поезда из действующего API. Я использую метод axios, чтобы подготовить все строки перед их отображением.
async componentDidMount(){
var request_1 = 'https://api.tfl.gov.uk/Line/bakerloo/Status';
var request_2 = 'https://api.tfl.gov.uk/Line/central/Status';
var request_3 = 'https://api.tfl.gov.uk/Line/circle/Status';
var request_4 = 'https://api.tfl.gov.uk/Line/district/Status';
var request_5 = 'https://api.tfl.gov.uk/Line/hammersmith-city/Status';
const [func1, func2, func3, func4] = await Promise.all([
axios.get(request_1),
axios.get(request_2),
axios.get(request_3),
axios.get(request_4)
]);
const func5 = await axios.get(request_5);
this.setState({
dataSource: func1.data[0].lineStatuses,
dataSource2: func2.data[0].lineStatuses,
dataSource3: func3.data[0].lineStatuses,
dataSource4: func4.data[0].lineStatuses,
dataSource5: func5.data[0].lineStatuses,
isLoading: false
});
И я отображаю извлеченные строки здесь:
<FlatList
style={styles.rightColumn}
data={this.state.dataSource}
renderItem={({item}) => <Text style={styles.rightColumnText}>{item.statusSeverityDescription} </Text>}
keyExtractor={({id}, index) => id.toString()}
/>
Результат обычно говорит «Хорошее обслуживание», «Незначительные задержки» или другие короткие фразы.
Я хочу изменить стиль текста (styles.rightColumn) в зависимости от результата, возвращаемого вызовом API. Есть ли способ изменить стиль так, чтобы он вел себя так, как показано ниже?
Если возвращается «Good Service» = простой черный шрифт.
Если он возвращает что-нибудь еще = красный шрифт.