2015-11-30 20 views
7

In questo modo il mio codice funziona benerichiedendo immagine nella reagire nativo 0.14.2

<Image 
source={require('../../assets/images/music_star.png')} 
style={styles.musicStar} 
/> 

Ma facendo questo mi dà un errore

let imgSource = '../../assets/images/music_star.png'; 
<Image 
source={require(imgSource)} 
style={styles.musicStar} 
/> 

ottengo un errore:

richiedono sconosciuto modulo "../../assets/images/music_star.png"

Cosa sto facendo male? Come richiedere le immagini memorizzate in una variabile in react-native 0.14.2?

risposta

9

Puoi leggere altro in the docs ma in fondo, in modo per far funzionare tutto questo, il nome dell'immagine in richiedono deve essere conosciuta in modo statico:

// GOOD 
<Image source={require('./my-icon.png')} /> 

// BAD 
var icon = this.props.active ? 'my-icon-active' : 'my-icon-inactive'; 
<Image source={require('./' + icon + '.png')} /> 

// GOOD 
var icon = this.props.active ? require('./my-icon-active.png') : require('./my-icon-inactive.png'); 

Per passare un'immagine di padre in figlio, dovresti richiederlo nel genitore:

/** 
* The entry point for the iOS app. 
*/ 
import React, { 
    AppRegistry, 
    Component, 
    Image, 
    View, 
} from 'react-native'; 

class Child extends Component { 
    render() { 
    return (
     <Image source={this.props.image} /> 
    ) 
    } 
} 

export default class Parent extends Component { 
    render() { 
    return (
     <View> 
     <Child image={require('./test.png')} /> 
     </View> 
    ); 
    } 
} 

AppRegistry.registerComponent('App',() => Parent); 
+0

c'è un modo per passare il percorso statico dell'immagine da padre a figlio tramite oggetti di scena? –

+0

@AakashSigdel Ho modificato la mia risposta :) – Almouro

+0

Grazie. Questo alquanto risolve il mio problema. –

Problemi correlati