从React-native-fs删除文件后,React Native刷新组件

时间:2018-11-28 14:10:53

标签: reactjs react-native

我正在使用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'); 

画廊是主屏幕(列表屏幕),重定向也有效,但是删除的文件仍然存在于列表中。

请帮助我。

1 个答案:

答案 0 :(得分:0)

我认为问题很简单,就是应用程序无法反映文件系统的实时状态。

这里没有足够的代码来说明,但是filesList需要动态更新。这意味着每次展示图库时都将文件系统内容加载到filesList中,或者在成功完成filesList事件后将文件系统内容从RNFS.unlink(filepath)中删除。