0
我的組件上有一個按鈕,它將導出對象的json,以便用戶可以下載它?要獲得JSON我將不得不做出一個REST調用來獲取JSON,然後我做這個React/Flux:激發組件的渲染方法中的動作或從組件執行Rest調用?
var definitionJson = JSON.stringify(definition);
var definitionName = definition.name
var exportedFileName = definitionName.concat(".json");
var file = new Blob([definitionJson], { type: 'application/json' });
//needed for IE10
if (window.navigator && window.navigator.msSaveBlob) {
window.navigator.msSaveBlob(file, exportedFileName);
}
else {
var a = document.createElement("a");
a.href = URL.createObjectURL(file);
a.setAttribute("download", exportedFileName);
a.click();
}
我有一些問題: -
- 我應該如何適應這種變動中的?我應該發佈一個動作創建器,它將下載json,然後更新FileDownload組件將要偵聽的某個存儲。該組件將觸發上述代碼,但它必須在其渲染方法中觸發一個動作,以將該存儲設置爲空值?
- 是否從組件的渲染方法觸發操作,正確的方法?
- 由於這不會從我的應用程序流動任何數據,我應該只使用React組件來獲取此JSON並將其彈出下載?這將使組件進行REST調用。
- 而不是3,發起一個動作創建器,它將獲取JSON並將其彈出下載?在這種情況下,我會將上面的代碼寫入動作創建器。