如何在 Salesforce 的 Lightning Web 组件中使用 URLFOR()?

How to use URLFOR() in Lightning web component of salesforce?

我不熟悉 Salesforce 中的文件处理。我目前正在下载自定义对象的所有记录的文件。我阅读了很多博客,发现有几种方法可以做到这一点。我决定采用 shepherd URLFOR() 方法,因为它看起来简单易行,但现在我拥有字符串格式的所有 ContentDocumentId,但我不知道如何使用 URLFOR()在闪电网络组件中。每个博客和 post 都提供了 URL,但我无法找到如何使用它。它是在 Apex 还是 HTML 页面中使用?

有人可以指导我吗?

这里是我组建的URL

{!URLFOR('/sfc/servlet.shepherd/version/download/' & StringOfContentDocumentIds &'?')}

这是 VisualForce 和 Aura 组件中使用的表达式语法。

您谈论的是 Lightning Web 组件(称为 LWC),因此此语法无效。 我建议使用 using the navigation service.

的标准方法

如果你真的想使用shepherd技巧,那么你需要这样写:

fileDownload.js

import { LightningElement } from 'lwc'

export default class FileDownLoad extends LightningElement {
  contentVersionIds = []

  get urlOfContentDocumentFile () {
    return `/sfsites/c/sfc/servlet.shepherd/version/download/${this.contentVersionIds.join('/')}?`
  }
}

fileDownload.html

<template>
  <a href={urlOfContentDocumentFile} target="_blank">Download</a>
</template>

请注意,我之前将 url 更改为添加 /sfsites/c,因为您似乎在谈论社区。如果不是,那么您可以删除该部分。

P.S:我不知道你是如何获得 contentVersionIds 列表的,所以我没有介绍那部分。