javascript - 添加文件时状态中的重复条目

标签 javascript reactjs

我正在使用 felepond npm 包来显示文件,我有一个功能,可以添加一个新文件

onupdatefiles={fileItems => {
  fileItems.forEach((item, i) => {
    console.log(item.file);
    const file = {
      name: item.file.name,
      data: item.file,
      extension: item.file.type
    };
    this.setState(prevState => ({
      fileObjects: [...prevState.fileObjects, file]
    }));
  });
}}

这里的问题是每次向列表添加新条目时都会添加整个状态...

我想知道你能不能把它做成一个集合,但要弄清楚那会是一团糟

有没有一种方法可以确保状态中没有重复的条目?

最佳答案

您将在回调中获得所有文件,因此您可以仅使用在回调中获得的文件覆盖当前状态下的文件。

onupdatefiles={fileItems => {
  const fileObjects = [];

  fileItems.forEach((item, i) => {
    fileObjects.push({
      name: item.file.name,
      data: item.file,
      extension: item.file.type
    });
  });

  this.setState({ fileObjects });
}}

关于javascript - 添加文件时状态中的重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54681092/

相关文章:

javascript - 我可以在生产环境中从 CDN 加载 Vue.js 吗?

javascript - 延迟加载具有占位符主色的图像

javascript - 如何更改 Ckeditor 的默认字体?

javascript - 在表单中存储 javascript 代码

javascript - 如何摆脱 React 中的 import/no-anonymous-default-export 警告?

javascript - 意外的标记运算符 «=»,预期的 punc «,»

twitter-bootstrap - React DatePicker Bootstrap 是最新的

javascript - CSS - 你可能需要一个合适的加载器来处理这种文件类型

javascript - 验证 render() 中使用的状态变量以设计/填充 html

reactjs - Realm 与 Electron