这个问题涉及API、JSON格式的数据和React.js。
我试图从输出为JSON数组的API中访问数据,该数组的格式如下:
{
"success":true,
"timestamp":1479498608,
"source":"USD",
"quotes":{
"USDUSD":1,
"USDJPY":110.644997,
"USDCAD":1.351041,
"USDRUB":64.628403,
"USDCNY":6.879204,
"USDMXN":20.623699
}
}现在我真正感兴趣的部分是各种货币对的“引号”值。
因此,使用react.js类:
var TickerTrader = React.createClass({
getInitialState: function() {
return{};
},
componentDidMount: function() {
var component = this;
$.get("http://apilayer.net/api/live?access_key=4a368d8077807c97b3aff9415a4d4995¤cies=USD,JPY,CAD,RUB,CNY,MXN&format=1", function(data) {
component.setState(data);
});
},
render: function() {
return (
<div>USD/JPY: {this.state.quotes.USDJPY}</div>
);
}
});然而,这似乎行不通。我想知道,如果我想访问与USDJPY相对应的值,我将如何做到这一点?
发布于 2016-11-18 21:20:03
问题不在于API调用没有更新状态,而是在初始加载时quotes将未定义,从而导致错误。这实际上是与Javascript有关的,而不是反应。
render: function() {
// on initial load quotes will be undefined
return (
<div>USD/JPY: {this.state.quotes ? this.state.quotes.USDJPY : null}</div>
);
}相反,您可以在状态中加载初始架构。
getInitialState: function() {
return {
quotes: {}
};
},当属性不存在时,Javascript似乎可以返回undefined,但当您访问属性的对象未定义时,它将引发异常。
let foo = {}
foo.test
// undefined
foo.test.fail
// Uncaugt TypeError: Cannot read property 'fail' of undefinedhttps://stackoverflow.com/questions/40685975
复制相似问题