【发布时间】:2020-01-10 00:54:17
【问题描述】:
我正在使用 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');
图库是主屏幕(列表屏幕),重定向也有效,但已删除的文件仍存在于列表中。
请帮帮我。
【问题讨论】:
-
你是如何管理状态的?你在使用 redux 吗?
-
不,我正在使用 componentDidMount 从
DocumentDirectoryPath的数组列表中读取文件,例如this.state = { filesList : [] } -
因此您必须使用拼接或删除从 filesList 表中删除已删除的文档(希望您的表被索引)
-
我正在从文件系统中删除,而不是从任何表中删除
-
我认为你从 fileSystem 和 filesList 中删除以更新状态。
标签: reactjs react-native