【发布时间】:2017-09-04 08:58:47
【问题描述】:
我有一个 React.js 组件,它从 componentDidMount() 中的 API 调用中提取其初始状态数据。数据是一个对象数组。
我可以使用 JSON.stringify(用于调试)查看数组和单个元素,但是当我尝试访问元素中的属性时,我收到一个错误,这似乎暗示该元素未定义,尽管检查过它不是。
代码:
class TubeStatus extends Component {
constructor(props) {
super(props);
this.state = { 'tubedata' : [] };
};
componentWillMount() {
let component = this;
axios.get('https://api.tfl.gov.uk/line/mode/tube/status')
.then( function(response) {
component.setState({ 'tubedata' : response.data });
})
.catch( function(error) {
console.log(JSON.stringify(error, null, 2));
});
};
render() {
return (
<div><pre>{this.state.tubedata[0].id}</pre></div>
);
}
}
错误:
Uncaught TypeError: Cannot read property 'id' of undefined
如果我使用 JSON.stringify() 来显示 this.state.tubedata,所有的数据都在那里。
在我公认的对 React.js 的有限了解中,我怀疑这是因为 React.js 试图在 componentDidMount() 触发加载初始状态数据之前访问 .id 属性,因此返回未定义,但我可能完全错了.
谁能指出我正确的方向?
【问题讨论】:
标签: javascript arrays json reactjs