首页 > 解决方案 > 使用 XLSX.js 和 React 读取文件在 Internet Explorer 11 上得到 TypeMissMatchError

问题描述

TypeMissMatchError选择要读取的文件后,我在 Internet Exlorer 11 上收到对话框错误。

在此处输入图像描述

以下是我读取文件的代码:

onChangeFile = event => {
    event.stopPropagation();
    event.preventDefault();
    const file = event.target.files[0];
    const reader = new FileReader();
    reader.addEventListener("load", e => {
      const data = e.target.result;
      let readedData = XLSX.read(data, { type: "array", cellDates: true, dateNF: "yyyy-mm-dd;@" });

      const wsname = readedData.SheetNames[0];
      const ws = readedData.Sheets[wsname];
      const dataParse = XLSX.utils.sheet_to_json(ws, { header: 1, raw: false, dateFN: "yyyy-mm-dd", blankrows: false, defval: "" });
      this.validateImportedData(dataParse);
      this.upload.value = "";
    });
    reader.readAsArrayBuffer(file);
  };

关于这个错误的任何想法?

标签: reactjsinternet-explorer-11xlsx

解决方案


我尝试检查您的代码,发现您的代码具有 => 箭头功能。

IE 浏览器不支持箭头函数表达式。

这可能是该错误的可能原因。

您需要将代码从 ES 6 转换为 ES 5。然后它可以在 IE 浏览器中运行。

您可以尝试使用Babeljs转译代码。它可以帮助您解决问题。


推荐阅读