ReactJS - 在 AntD Modal 中刷新文件/PDF 文件的内容

问题描述

EDIT解决了我自己的问题。我需要在 ''' 中调用 destroyOnClose 模态 ''' 标签。不确定这是否是最好的方法,但它在我的情况下有效。

我是 React JS/General Web Dev(来自 C++/Java 背景)的完全初学者,并且在将 PDF 文件加载到模态弹出窗口时遇到了障碍。

以下代码获取一个 pdf 文件并渲染到模态窗口中。这工作得很好。但是,当我关闭并重新打开 Modal 时,我希望 pdf 刷新,因为每次调用 URL 时内容都会发生变化。

我不认为这是服务器端的问题,因为我可以获取文件中的 url 并在浏览器中单独运行它,它每次都会生成一个全新的独特文档。我正确设置了响应标头。

有什么我遗漏的吗?我使用的是 React 还是 AntD 组件来缓存我的文件?如果是这样,我如何告诉它不要并且每次都获得新的获取?我在这里不知所措...

反应代码

<Modal width={850} title="Print Ticket" visible={isModalVisible_2} onOk={handleOk_2} onCancel={handleCancel_2}>
          <Document 
            file="http://localhost:8888/api/pdf"
            onLoadSuccess={onDocumentLoadSuccess}
          >
            <Page pageNumber={pageNumber} />
          </Document>
          <p>Page {pageNumber} of {numPages}</p>
</Modal>

服务器端响应头

r.headers['Content-Type'] = 'application/pdf'
r.headers["Cache-Control"] = "no-cache,no-store,must-revalidate"
r.response.headers["Pragma"] = "no-cache"
r.response.headers["Expires"] = "0"
r.response.headers['Cache-Control'] = 'public,max-age=0'

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...