我知道那是多么愚蠢,但我不明白这个简单的事情。 我有对象,我需要从对象名称获取。但是,不要了解如何获得内在价值。
我试试:
data['name']
data[0]
data[0].name
每次我收到此错误:
TypeError:无法读取属性
非常感谢。
Upd1:
然后我尝试:
data.constructor
我明白了:
Cannot read property 'constructor' of null
我从ajax获取数据,来自question 当我尝试:
JSON.parse(数据)
我明白了:
SyntaxError:位于1(...)的JSON中的意外标记o
当我从服务器获取此数据时的原始数据:
{"流派":[{" ID":28,"名称":"动作"},{" ID":12,"名称":"冒险"},{" ID":16,"名称":&#34 ;动画"},{" ID":35,"名称":"喜剧"},{" ID":80, "名称":"犯罪"},{" ID" 99"名称":"纪录片"}, {" ID":18,"名称":"剧情"},{" ID":10751"名称&#34 ;:"家庭"},{" ID":14,"名称":"幻想"},{" ID&# 34; 36"名称":"历史"},{" ID":27,"名称":"恐怖与#34;},{" ID":10402"名称":"音乐"},{" ID":9648,&# 34;名称":"推理"},{" ID":10749"名称":"约会"},{& #34; ID":878,"名称":"科学 小说"},{" ID":10770"名称":"电视 电影"},{" ID":53,"名称":"惊悚"},{" ID":10752,& #34;名称":"战争"},{" ID":37,"名称":"西"}]}
答案 0 :(得分:1)
在审核了您的其他问题后,这是我假设的代码。
const Main = React.createClass({
getInitialState : function() {
return {
data: null
};
},
componentDidMount: function() {
var self = this;
axios.get('https://api')
.then(function (response) {
self.setState({data: response.data})
console.log(response.data);
})
.catch(function (error) {
console.log(error);
});
console.log('mount ' + this.state.data );
},
render() {
return (
<h1>{JSON.stringify(this.state.data)}</h1>
)
}
})
export default Main;
当您在等待服务器返回时,Main.data等于null。这就是为什么你得到null类型的原因,如果你像数组一样访问数据,你会收到类型错误。在等待填充数据时,可以将Main.data默认为空数组。
const Main = React.createClass({
getInitialState : function() {
return {
data: []
};
},
在使用React时,您还需要在数据更改后更新组件。我建议为此查看this问题。
答案 1 :(得分:0)
我不知道,为什么之前没有用,但现在我得到了我需要的一切。谢谢大家。
import React from 'react';
import { render } from 'react-dom';
import 'whatwg-fetch';
const Genres = React.createClass({
getInitialState : function() {
return {
data: []
};
},
componentDidMount: function() {
fetch('https://api.themoviedb.org/3/genre/movie/list?api_key=')
.then(function(response) {
return response.json()
}).then(function(json) {
this.setState({data: json.genres})
//console.log('parsed json', json.genres)
}.bind(this)).catch(function(ex) {
console.log('parsing failed', ex)
})
},
render() {
var data = this.state.data.map(function(key){
return <li>{ key.name }</li>
})
console.log(data)
return (
<div>
Genres:{data}
</div>
)
}
})
export default Genres;