我有一个具有以下结构的data.js
文件:
var DATA= {
"groups": [{
"id": "1",
"name": "group 1",
"subgroups": [{}, {}, ...]
}, ...],
...
}
如果我不能在文件中使用export
,是否可以在我的React应用程序中加载该文件并使DATA var在任何组件中可用(我可能想使用它初始化Redux状态)并不能将其转换为常规JSON文件?基本上,我无法编辑此文件。如何实现?
答案 0 :(得分:0)
您绝对可以在.js文件中使用导出。 export default
或module.exports
应该可以工作。如果您不使用语言转换器,请使用后面的方法。
var DATA = {
"groups": [{
"id": "1",
"name": "group 1",
"subgroups": [{}, {}, ...]
}, ...],
...
}
module.exports = DATA;
否则,将文件转换为json
格式并直接使用。
{
"groups": [{
"id": "1",
"name": "group 1",
"subgroups": [{}, {}, ...]
}, ...],
...
}
反应应用程序file.js:
import data from './data.json';
// do something with data.groups
答案 1 :(得分:0)
据我了解,您只有一个具有这种确切结构的文件,正在寻找一种在您的应用程序中访问该文件的方法。由于它使用var声明,因此您可以通过<script>
标签将其包含在Web应用程序中,并且DATA变量将在您的代码中全局可用。
如果使用TypeScript或FlowType,则还应提供一个带有declare var DATA: Data;
的声明文件,其中Data
是描述此数据对象结构的自定义接口。
但是,我建议的是创建一个将使用该变量的模块,仅在该模块中提供一个声明,然后按我喜欢的方式对其进行转换并从那里导出它。只是为了让您了解它的外观:
interface Data {
groups: Group[];
}
interface Group {
id: string;
name: string;
subgroups: {}[]; // you might provide more type information here, but to begin it would do as well
}
declare var DATA: Data;
const APP_DATA: Data = DATA;
export default APP_DATA;
答案 2 :(得分:0)