我正在构建一个简单的admin-on-rest应用程序。其中一个功能是用户从列表视图中导出内容。到目前为止,我有两种可能的方法。
我想有两件事是必要的:
我一直在寻找示例或跟随其他同事提问,我也不会想出类似的东西。任何信息/示例/项目都将非常感激。
答案 0 :(得分:1)
这是可以解决的问题。过滤器以redux格式存储,可以由任何连接的组件访问。我猜你有一个可用的API端点,你可以使用过滤数据ping,然后可以生成文件并使用文件URL进行响应。
1)写一个连接的按钮组件。这应该有一个mapStateToProps方法来访问当前的过滤数据
https://marmelab.com/admin-on-rest/List.html#actions
2)它还应该发送一个生成POST请求的动作。
https://marmelab.com/admin-on-rest/Actions.html#using-a-custom-action-creator
重要提示:您必须考虑如何下载文件本身。由于您正在动态生成URL,因此它不会嵌入到模型数据中,因此您无权访问它。您可能必须将文件名和路径硬编码到组件中,因此单击将始终导致下载。虽然这并不像听起来那么简单,因为文件生成本身将是异步操作。我认为单击此按钮会导致重定向到显示下载链接的页面。
答案 1 :(得分:0)
为了补充krunal的答案,有一个名为FileSaver的库可以接受json响应并启动文件保存操作及其内容,显示文件保存对话框,甚至可以直接下载到你的文件中选择。