如何解决在使用Naive UI Upload组件时 file.name 为 undefined?

作者站长头像
站长
· 阅读数 6

在使用Naive UI 的 Upload 组件时,有如下代码逻辑(已做简化)

我想利用 generateData 在提交的表单上附加数据,但直接读取 file.name 始终为 undefined,直接打印 file 到控制台和使用 JSON.stringify 却能获得符合预期的结果。

如何解决在使用Naive UI Upload组件时 file.name 为 undefined?

<script lang="ts" setup>

const generateData = (file: UploadFileInfo) => {
  const objectName = file.name
  console.log('generateData', objectName)
  console.log(JSON.stringify(file, null, 2))
  console.log(file)
  return {
    ...pick(ossDirectPostObjectInfo.value!, ['ossAccessKeyId', 'policy', 'signature']),
    key: objectName,
    'x-oss-meta-user': userStore.userVO!.id.toString()
  }
}
</script>

<template>
  <n-upload
    :data="generateData"
  />
</template>

期望正常读取 file.name

回复
1个回答
avatar
test
2024-06-20

抱歉,是我误将 ({ file: UploadFileInfo }) => Object 当成 (file: UploadFileInfo) => Object 了,已解决。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容