Я пытаюсь уменьшить длину метода render()
, чтобы улучшить читаемость, вызывая методы класса, содержащие изолированные элементы JSX.
Проблема в том, что этот метод не будет работать более чем для одного элемента JSX.
Я встроил каждый элемент в <View>
, но это не предотвращает эту ошибку.
Invariant Violation : Text strings must be rendered within a <Text> component.
import React, { Component } from 'react';
import { Text, View,StyleSheet } from 'react-native';
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "center",
alignItems: "center"
}})
export default class HelloWorldApp extends Component {
header() {
return (
<Text>header</Text>
);
}
firstElement() {
return (
<Text>first element</Text>
);
}
secondElement() {
return (
<Text>second element</Text>
);
}
footer(){
return (
<Text>footer</Text>
);
}
render() {
let header = this.header();
let firstElement = this.firstElement();
let secondElement= this.secondElement();
let footer = this.footer();
return (
<View style={styles.container}>
header,
firstElement,
secondElement,
footer,
</View>
);
}
}
Я знаю, что синтаксис в render()
неверен, я хочу показать вам, как должен выглядеть код.