nsnumber类型的json值'2'无法转换为nsstring

时间:2019-01-19 10:47:16

标签: react-native carousel

我正在使用从库中导入的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'
        },
    });

因此,我应该能够渲染显示在图像数组中的所有图像。但我收到此错误。 我在哪里错了?

1 个答案:

答案 0 :(得分:2)

您的问题在这里:

const images = [
    require("./abc.jpg"),
    require("./xyz.jpg")
];

require不返回图像的URL,而是媒体的内部索引。在您的情况下,我假设是2,并且图像的接口需要一个字符串。

尝试一下:

<Image style={{ width: BannerWidth, height: BannerHeight }} source={image} />