Vue测试中字符串转Blob对象异常:生成Blob为空对象求助
解决字符串转Blob后显示为空对象的问题
首先明确:你看到的{}只是浏览器控制台对Blob对象的默认显示方式,不代表Blob是空的。你可以通过打印Blob的size属性验证内容存在:
console.log(fileDict[0].file.size); // 会输出17,对应"Hey, hello, world,"的字符长度
如果你的loadcsv函数无法读取这个Blob,大概率是因为它期望接收的是File对象而非原始Blob。File继承自Blob,额外包含文件名、修改时间等元信息,多数文件处理逻辑会依赖这些属性。
修改代码,直接创建File对象替代Blob即可:
const workingCSV = "Hey, hello, world,"; const localVue = createLocalVue(); const wrapper = shallowMount(ModalAddCollectionCSV, { localVue, propsData: { visible: true, }, }); // 创建File对象,指定文件名和CSV对应的MIME类型 const fileDict = [{ file: new File([workingCSV], 'data.csv', { type: 'text/csv' }) }];
如果确实需要使用Blob,也可以用FileReader验证内容是否正确:
const reader = new FileReader(); reader.onload = function(e) { console.log(e.target.result); // 会输出完整的字符串内容"Hey, hello, world," }; reader.readAsText(fileDict[0].file);
内容的提问来源于stack exchange,提问作者Jackie Chan
相关产品推荐
相关产品推荐

