J'utilise react-native 0.28.0
J'essaie de montrer une image sur un simulateur iPhone selon ce tutoriel: http://www.appcoda.com/react-native-introduction/
var styles = StyleSheet.create({
image: {
width: 107,
height: 165,
padding: 10
}
}
var imageURI = 'http://books.google.com/books/content?id=PCDengEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api'
Puis dans la fonction render()
, j'ajoute ceci:
<Image style={styles.image} source={{uri:imageURI}} />
L'espace alloué à l'image est là, mais l'image n'est pas affichée.
En plus de la réponse de Jonathan Stellwag, la 1ère solution ne fonctionne que si l'URI utilise https ou en définissant la sécurité de transport d'application.
Voir Impossible d'afficher Image par URI dans React Simulateur iOS natif
J'espère que les solutions suivantes pourront vous aider - tout peut être utilisé pour Image
1. Solution HTTPS:
- Votre image est fournie par un URI -
source={{uri:imageURI}}
- Exemple:
source={{uri: 'https://i.vimeocdn.com/portrait/58832_300x300.jpg'}}
- Important: N'oubliez pas de définir le clip deux fois: {{}}
2. Solution HTTP:
- Si vous voulez http, cherchez la solution suivante - numéro HTTP Github
- La solution: - Solution HTTP
3. Image locale
- Enregistrer: créez un nouveau dossier pour vos images et sauvegardez-les localement (dossier: images)
- Require: Exige l'image que vous avez sauvegardée localement en utilisant la syntaxe parmi
var yourPicture = require ('./images/picture.jpg');
- Utilisation: Utilisez votre image dans la fonction de rendu.
render(){
return(
<Image source={yourPicture}/>
)
}
Le style de vos images fonctionne comme vous l'avez décrit
Lorsque vous ajoutez une balise Image et utilisez uri
, vous devez vérifier les points suivants:
Ajout de styles de largeur et de hauteur pour la balise Image:
ex:<Image source={{uri: 'https://reactjs.org/logo-og.png'}} style={{width: 400, height: 400}} />
image doc
Utilisation d'URL HTTP: vous devez activer la sécurité du transport d'applications.
Sécurité du transport d'applications pour iOS
Utilisation des URL HTTPS: cela fonctionnera normalement
Pour tous ceux qui arrivent ici, si la réponse acceptée ne vous convient pas, assurez-vous que votre image a un style approprié. Pour les images importées par URI, vous devez définir la hauteur et la largeur.
Mon problème était dans le chemin. react-native-fs
Renvoie un chemin semblable à /storage/emulated/0/Android/data/com.blah/blah.jpeg
, Mais les composants Image
exigent qu'il soit file:///storage/emulated/0/Android/data/com.blah/blah.jpeg
J'ai eu exactement le même problème et ma solution a été de définir ce que vous avez comme var styles = ...
à const styles = ...
et c'est tout cela a résolu mon problème.