Bonjour,
Je cherche depuis un moment sans succès et je me troune vers vous.
Je dois afficher une des trois image en fonction de deux variables mais je dois surtout récupérer la valeur d'une variable pour affciher une image.
Voici mon code (peut-être que je m'y prend mal)
Les deux variable qui nous concerne est imageHeader et imageHeaderPage
Dasn la vue station.tsx, j'appelle le componemnt <Header> ainsi (qui va afficher les informations d'une station)
station.tsx
<Header imageHeaderStation={2}/>
Dans la vue stations.tsx, j'affiche toutes mes stations et j'appelle Header ainsi
stations.tsx
<Header imageHeader="home2.jpg"/>
Avant il faut savoir.
Si imageHeaderStation a une valeur (1, 2, 3,...) j'affiche l'image d'une station
Avant d'aller dans les détail. en résumé, j'aimerais faire
Si imageHeaderStation == true affiche une image distance ({uri: 'https://bud.eco-sensors.ch/img/stations/station-'+ imageHeaderStation +'.jpg'})
Si non Si imageHeader == true affiche une image local (require('@/assets/images/app/'+imageHeader))
si non affiche une image local par default (require('@/assets/images/app/header1.jpg'))
J'appelle Header dans la page qui affiche toutes les stations ainsi
<Header imageHeader="home2.jpg"/>
Et j'appelle l'image d'une station, dans la vue qui affiche les informations d'une station ainsi
<Header imageHeaderStation={1}/>
Si non dans d'autres vues, je peux avoir simplement ceci qui va m'adficher une image par défaut
Je commence comme cela et la ca bug déjà en utilise {imageHeader ? :}. C'est comme si je ne pouvais faire elseif()
1 2 3 4 5 6 7
| <Image
style={css.jumbotronImage}
source={imageHeaderStation ?
{uri: 'https://bud.aaaaa.ch/img/stations/station-'+ imageHeaderStation +'.jpg'} :
{imageHeader ? require('@/assets/images/app/' + imageHeader) :
require('@/assets/images/app/header.jpg')}
/> |
L'autre problème se trouve ici. J'ai toujours une erreur au niveau de '+imageHeader
require('@/assets/images/app/'+imageHeader) :
J'ai aussi essayé un truc du genre sans succès
require('@/assets/images/app/${imageHeader}) :
J'ai déjà vu ca (${variable} )à quelque part, mais ca ne joue pas chez moi 
Comment je peux récupréer la valeur de imageHeader pour qu'au final j'ai un truc équivalent à
require('@/assets/images/app/header2.jpg) :
Voici le code qui pose qui doit clairement évoluer...
Header.tsx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| type Props = {
imageHeaderStation?: number | null,
imageLogo?: number | null,
imageHeader?: string | null,
showLogo?: boolean,
}
export function Header({imageHeader, imageLogo, imageHeaderStation, showLogo, ...rest}: Props){
const colors = useThemeColors();
return(
<View style={[styles, {backgroundColor: colors.appHeadBackgroundColor }]} {...rest}>
<View style={css.jumbotronContainer}>
<Image
style={css.jumbotronImage}
source={imageHeaderStation ?
{uri: 'https://bud.eco-sensors.ch/img/stations/station-'+ imageHeaderStation +'.jpg'} :
require('@/assets/images/app/header.jpg')}
/>
</View>
</View>
)
} |
Merci pour vos lumières
Partager