2015-12-02 60 views
0

我使用反应原生,我已经尝试了两段代码,第一个不起作用,第二个做。谁能解释为什么?反应本机图像不加载连接字符串

  1. <Image source={require('../assets/'+'g'+'Light.png')} style={styles.greenLight}/>
  2. <Image source={require('../assets/gLight.png')}
+0

不知道为什么,但我也有过类似的问题。我通过传递一个将字符串连接到图像源require语句的函数来解决它。 –

+0

这太令人沮丧了。如果我理解正确,传递具有图像名称的数组并将它们连接到正确的相对路径是不可能的?这在几乎所有现代编程语言中都是可能的(据我所知,这是旧的)。 – DerpyNerd

回答

2

使用动态命名的阵营原生是不允许的。您应该使用一个开关,如果语句或不同的功能,会为你做到这一点:

// 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'); 
<Image source={icon} /> 

这里的更多信息:https://facebook.github.io/react-native/docs/images.html

+0

感谢您的工作 –