entrez la description de l'image ici J'essaie d'ajouter mon composant CardsSection
dans mon composant Card
mais je reçois toujours cette erreur concernant une violation de texte mais je n'utilise même pas tout texte dans mes fichiers Tournament
, Card
ou CardSection
.js. Je ne vois pas pourquoi j'obtiens cette erreur. Quelqu'un peut-il me dire quoi faire et pourquoi?
Tournament.js
import React from "react";
import { View, Text, Image, ScrollView } from "react-native";
import { Card, Button, Spinner, CardSection } from "../common";
class Tournaments extends React.Component {
static navigationOptions = {
tabBarLabel: "Tournaments"
};
render() {
return (
<View style={styles.containerStyle}>
<Card>
<View style={styles.logoContainer}>
<Image
style={styles.logo}
source={require("../../Images/ShoeJackCityLogo.png")}
/>
</View>
<View style={styles.formContainer} />
</Card>
<ScrollView horizontal>
<Card>
<View style={{ flex: 1, flexDirection: "row" }}>
<CardSection>
<Image
style={styles.product}
source={require("../../Images/aj_4_toro.png")}
/>
</CardSection>
<CardSection>
<Image
style={styles.product}
source={require("../../Images/aj_4_toro.png")}
/>
</CardSection>
<CardSection>
<Image
style={styles.product}
source={require("../../Images/aj_4_toro.png")}
/>
</CardSection>
</View>
</Card>
</ScrollView>
</View>
);
}
}
const styles = {
containerStyle: {
flex: 1,
backgroundColor: "#F13C20",
paddingBottom: 20
},
logoContainer: {
alignItems: "center",
flexGrow: 1,
justifyContent: "flex-start",
paddingBottom: 15
},
logo: {
paddingTop: 15,
width: 50,
height: 50
},
product: {
width: 100,
height: 100,
paddingBottom: 15,
marginRight: 50
}
};
export default Tournaments;
CardSection.js
import React from 'react';
import { View } from 'react-native';
const CardSection = (props) => (
<View style={styles.containerStyle}>
{props.children};
</View>
);
const styles = {
containerStyle: {
borderBottomWidth: 1,
padding: 5,
backgroundColor: 'white',
justifyContent: 'flex-start',
flexDirection: 'row',
borderColor: '#ddd',
position: 'relative'
}
};
export { CardSection };
Card.js
import React from 'react';
import { View } from 'react-native';
const Card = (props) => (
<View style={styles.containerStyle}>
{props.children}
</View>
);
const styles = {
containerStyle: {
borderBottomWidth: 0,
shadowColor: '#000',
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 2,
elevation: 1,
marginLeft: 5,
marginRight: 5,
marginTop: 30,
}
};
export { Card };
Vous avez un point-virgule concaténé juste après vos enfants dans le composant CardSection. Ce point-virgule est interprété comme du texte et puisque chaque texte doit se trouver dans un <Text>
composant, l'erreur est levée.
Pour résoudre le problème, changez simplement
const CardSection = (props) => (
<View style={styles.containerStyle}>
{props.children};
</View>
);
à
const CardSection = (props) => (
<View style={styles.containerStyle}>
{props.children}
</View>
);
Essayez de supprimer tous les espaces blancs (et éventuellement les fins de ligne) de l'intérieur de votre balise parent.
Facebook dit que ce n'est pas un bogue et qu'il fonctionne comme prévu (dans un rapport de bogue connexe) et qu'il n'a introduit aucun changement dans .56, mais ce n'est pas ainsi que cela fonctionne et cela fonctionne apparemment différemment des versions précédentes.
Expo n'a pas non plus de problème avec des espaces supplémentaires. Comment tu es censé le faire maintenant, je ne peux pas te le dire.