如何读取从本地存储的文件?

问题描述 投票:1回答:1

我上传图像设备的本地存储(安卓),任务成功做,我现在面临的问题,当我尝试读取从本地存储的文件,它会弹出错误说:

invariation违反对象是无效的孩子作出反应

这里是我的代码上传的图片:

let dirs = RNFetchBlob.fs.dirs;
RNFetchBlob.fs.exists(dirs.PictureDir + "/myfolder")
    .then((exist) => {
            //console.log(`file ${exist ? '' : 'not'} exists`);
            if (!exist) {
                try {
                    const fs = RNFetchBlob.fs;
                    /
                    RNFetchBlob.fs.mkdir(dirs.PictureDir + "/myfolder")
                        .then(() => {
                                let base64Str = data;
                                fs.writeFile(dirs.PictureDir + "/myfolder/" + imageName, base64Str, 'base64')
                                    .then(() => {
                                        RNFetchBlob.fs.scanFile([{
                                            path: dirs.PictureDir + "/myfolder/",
                                            mime: 'jpeg/jpg'
                                        }]);
                                    }).catch(() => {
                                        alert("error");
                                    })

这里是通向我的形象

常量路径= dirs.PictureDir + “/ MyFolder文件/ 1718179779c718ba84098b90f6061816fba9f.jpg”

在这里,我的代码访问图像,你可以请帮忙

<ScrollView keyboardShouldPersistTaps="handled">

        <View style={styles.containerWithMargin} >
        {RNFetchBlob.fs.readFile(path, 'base64') .then( (data) =>
             <Avatar
             medium
             onPress={this.onSelectPostImage.bind(this)}
             source={{uri : data}}
           />
        )}

        </View>
react-native
1个回答
1
投票

RNFetchBlob.fs.readFile返回一个承诺,什么异步应在ComponentDidMount并从那里你可以使用setState设置imageUrl例如,那么在JSX你就会有这样的事情

<View style={styles.containerWithMargin} >
{imageUrl && 
   <Avatar
         medium
         onPress={this.onSelectPostImage.bind(this)}
         source={{uri : imageUrl}}
       />
}
</View
© www.soinside.com 2019 - 2024. All rights reserved.