我正在使用react-native-fs列出和删除应用程序中的文件,我已经在一个组件中列出了所有文件,并且还有另一个组件来显示该文件(图像查看器),我想删除该文件图片查看器,并且应该在删除文件后重定向到列表页面,正在删除文件我正在导航到“列表”组件,但是仍然可以在列表上看到已删除的文件
deleteImageFile = () => {
const fileName = this.state.fileName;
const dirPicutures = RNFS.DocumentDirectoryPath;
const filepath = `${dirPicutures}/${fileName}`;
RNFS.exists(filepath)
.then( (result) => {
console.warn("file exists: ", result);
if(result){
return RNFS.unlink(filepath)
.then(() => {
console.warn('FILE DELETED');
this.props.navigation.navigate('Gallery');
})
// `unlink` will throw an error, if the item to unlink does not exist
.catch((err) => {
console.warn(err.message);
});
}
})
.catch((err) => {
console.warn(err.message);
});
}
如果目录中存在文件,则文件正在删除,如果没有,则显示文件不存在的消息。
删除成功后,我正在致电
this.props.navigation.navigate('Gallery');
画廊是主屏幕(列表屏幕),重定向也有效,但是删除的文件仍然存在于列表中。
请帮助我。
答案 0 :(得分:0)
我认为问题很简单,就是应用程序无法反映文件系统的实时状态。
这里没有足够的代码来说明,但是filesList
需要动态更新。这意味着每次展示图库时都将文件系统内容加载到filesList
中,或者在成功完成filesList
事件后将文件系统内容从RNFS.unlink(filepath)
中删除。