不能访问React对象状态上的object属性,即使它存在.返回未定义
Can't access object property on a React object state, even though it exists. Returns undefined
我使用AJAX来获取一些JSON,然后我想显示值。如果我退出包含我想要显示的值的对象,我可以看到键和值。但是,当我试图直接访问该值时,得到undefined
这是我卡住的组件:
var WeatherCard = React.createClass({
getInitialState: function () {
return {};
},
componentDidMount: function() {
var comp = this;
$.get("http://api.openweathermap.org/data/2.5/weather?zip=" + this.props.zipcode + ",us", function(data) {
comp.setState(data);
});
},
render: function() {
// I want to get the value @ this.state.main.temp
// this works...
console.log(this.state.main);
// this does not work...
// console.log(this.state.main.temp);
// I want "current temp" to display this.state.main.temp
return (
<div className="well">
<h3>{this.state.name}</h3>
<p>Current Temp: {this.state.main} </p>
<p>Zipcode: {this.props.zipcode}</p>
</div>
);
}
});
这是整块的。
http://plnkr.co/edit/oo0RgYOzvitDiEw5UuS8?p=info
在第一次传递时,this.state
为空,这将使this.state.main.temp
为未定义。要么用正确的结构化对象预填充状态,要么用if
子句包装。
对于返回null或未定义的对象,React将直接跳过渲染,没有任何警告或错误,但是当你有返回null或未定义的嵌套结构时,会使用正常的JavaScript行为。
尝试使用main: [], data:[]来设置初始状态,而不是使用空对象。
我有同样的问题,一旦我把我的AJAX setState和做了一个空的初始状态,一切都开始正常工作。
我是React的新手,所以我不能给你一个很好的解释为什么这会产生不同。我似乎遇到了各种各样奇怪的问题。
希望有帮助。
相关文章:
- 对象为null或IE9中存在未定义错误
- 如何在不获得引用错误的情况下将不存在的JavaScript对象与未定义的对象进行比较
- 类型错误: $(..).偏移量(..)未定义,偏移量存在
- 是否存在 document.getElementById('element')的情况;将返回未定义
- 类型错误: 无法读取未定义的属性“存在”
- 如何使用 indexOf 方法检查数组中是否存在“未定义”
- Mongo 返回未定义但数据存在
- 未捕获的类型错误:当存在父级时,无法读取未定义的属性“长度”
- 挖空引用错误 - 属性在存在时未定义
- Express & jade (node.js) - 检查是否存在时,变量未定义错误
- 角度火:未定义不是一个函数($on方法不存在)
- Mozilla Firefox中存在未定义的错误
- Rails测试-检查警报存在抛出“;未定义的方法`driver'&”;
- 做一个“;不存在变量“;评估到“;未定义的“;非严格代码中的值
- 如何检查javascript变量是否存在、空、数组、(数组但为空)、未定义、对象等
- 如何检查变量是未定义的(已声明但未赋值)还是未声明的(不存在)
- jQuery中的TypeError.未定义的值,尽管它已定义/存在
- Chrome和Mozilla中存在Javascript错误,但Opera中没有.未定义名称
- JavaScript错误未定义对象,尽管对象存在
- 向函数传递未定义参数-检查变量是否存在