这样做我的代码工作正常
<Image
source={require('../../assets/images/music_star.png')}
style={styles.musicStar}
/>
但这样做会给我一个错误
let imgSource = '../../assets/images/music_star.png';
<Image
source={require(imgSource)}
style={styles.musicStar}
/>
我收到错误:
要求未知模块“../../ assets / images / music_star.png”
我做错了什么?如何在react-native 0.14.2?
中要求存储在变量中的图像答案 0 :(得分:9)
您可以阅读更多in the docs但基本上,为了使其正常工作,必须静态了解require中的图像名称:
// 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');
要将图像从父级传递给子级,您应该在父级中要求它:
/**
* 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);