我有一个React组件,我想从文件中加载JSON数据。即使我将变量 数据 创建为全局变量,控制台日志当前也不起作用
'use strict';
var React = require('react/addons');
// load in JSON data from file
var data;
var oReq = new XMLHttpRequest();
oReq.onload = reqListener;
oReq.open("get", "data.json", true);
oReq.send();
function reqListener(e) {
data = JSON.parse(this.responseText);
}
console.log(data);
var List = React.createClass({
getInitialState: function() {
return {data: this.props.data};
},
render: function() {
var listItems = this.state.data.map(function(item) {
var eachItem = item.works.work;
var photo = eachItem.map(function(url) {
return (
<td>{url.urls}</td>
)
});
});
return <ul>{listItems}</ul>
}
});
var redBubble = React.createClass({
render: function() {
return (
<div>
<List data={data}/>
</div>
);
}
});
module.exports = redBubble;
理想情况下,我希望这样做,但它不起作用-它尝试在文件名的末尾添加 “ .js” 。
var data = require('./data.json');
最好的方式,最好是“反应”方式的任何建议,将不胜感激!
您正在打开一个异步连接,但是您已经编写了代码,就好像它是同步的一样。该reqListener
回调函数将不会与你的代码同步执行(即前React.createClass
),但你的整个段已运行后,才和响应已经从远程位置接收。
除非您使用零延迟量子纠缠连接,否则在您运行所有语句之后就 很好了 。例如,要记录接收到的数据,您将:
function reqListener(e) {
data = JSON.parse(this.responseText);
console.log(data);
}
我没有data
在React组件中看到使用,所以我只能从理论上提出建议:为什么不在回调中 更新 您的组件?
问题内容: 我正在尝试将.json文件加载到javascript中的变量中,但无法正常工作。这可能只是一个小错误,但我找不到它。 当我使用静态数据时,一切工作正常: 我把一切的在一个文件,并试图以加载到本地JavaScript变量作为解释在这里:负载JSON转换成变量。 我使用Chrome调试器运行它,它总是告诉我该变量的值为。该文件与调用它的.js文件位于同一目录中。 我错过了什么? 问题答案:
问题内容: 我正在尝试加载本地JSON文件,但无法正常工作。这是我的JavaScript代码(使用jQuery): test.json文件: 什么都没有显示,Firebug告诉我这是未定义的。在Firebug中,我可以看到它是好的且有效的,但是当我复制该行时,这很奇怪: 在Firebug的控制台中,它可以正常工作,并且我可以访问数据。 有人有解决方案吗? 问题答案: 是异步的,所以您应该这样做:
问题内容: 我需要从多个JSON文件中加载数据,每个文件中都有多个记录到Postgres表中。我正在使用以下代码,但无法正常工作(在Windows上使用pgAdmin III) SAMPLE.JSON文件的内容是这样的(从许多这样的记录中得到两个记录): 问题答案: 试试这个:
问题内容: 我正在尝试加载本地JSON文件,但无法正常工作。这是我的JavaScript代码(使用jQuery: test.json文件: 什么都没有显示,Firebug告诉我数据未定义。在Firebug中,我可以看到它是好的且有效的,但是当我复制该行时,这很奇怪: 在Firebug的控制台中,它可以正常工作,并且我可以访问数据。 有人有解决办法吗? 问题答案: 是异步的,所以您应该这样做:
我想把一个html文件加载到WebView中。 请注意,在so上有很多相关的问题,但它们都涉及从资产文件夹获取**.html*。 但是我想从本地文件夹加载html文件,比如“d://abc.html”,因为如果我的html大约是10MB,那么相应的apk大小也会增加到10MB。