我正在使用从库中导入的Carousel制作imageSlider:“ react-native-banner-carousel”
我正在尝试获取本地存储在文件夹组件中的图像。我正在创建一个图像数组,然后尝试通过Carousel渲染它们。
我肯定会收到类似以下错误:“ nsnumber类型的json值'2'无法转换为nsstring”
ImageSlider代码:
const BannerWidth = Dimensions.get('window').width;
const BannerHeight = 260;
const images = [
require("./abc.jpg"),
require("./xyz.jpg")
];
export default class ImageSlider extends React.Component {
renderPage(image, index) {
return (
<View key={index}>
<Image style={{ width: BannerWidth, height: BannerHeight }} source={{uri:image}} />
</View>
);
}
render() {
return (
<View style={styles.container}>
<Carousel
autoplay
autoplayTimeout={5000}
loop
index={0}
pageSize={BannerWidth}
>
{images.map((image, index) => this.renderPage(image, index))}
</Carousel>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
justifyContent: 'center'
},
});
因此,我应该能够渲染显示在图像数组中的所有图像。但我收到此错误。 我在哪里错了?
答案 0 :(得分:2)
您的问题在这里:
const images = [
require("./abc.jpg"),
require("./xyz.jpg")
];
require不返回图像的URL,而是媒体的内部索引。在您的情况下,我假设是2,并且图像的接口需要一个字符串。
尝试一下:
<Image style={{ width: BannerWidth, height: BannerHeight }} source={image} />