我正在尝试将CompondentDidMount添加到我的班级。
但是,这会返回错误:
propType失败:提供给component
的道具IndexRoute
无效。
这是我尝试使用ComponentDidMount:
var PhotoGallery = React.createClass({
componentDidMount () {
return fetch("http://localhost:8000/api/test/?format=json")
.then((response) => response.json())
.then((json) => {
console.log(json);
this.setState({PHOTODATA: json})
})
},
getInitialState: function() {
return {
displayedCategories: []
};
},
此外,如果手动将我的json数据设置为如下所示的var,我的代码工作正常:
var PHOTODATA = [{ ... *json data* ... }]
...
var PhotoGallery = React.createClass({
getInitialState: function() {
return {
displayedCategories: []
};
},
...
render: function(){
var uniqueCategories = PHOTODATA.map(function (photo) {
return photo.tag; // tag is a list of tags...
}).reduce(function (uniqueList, someTags) {
return uniqueList.concat(
someTags.filter(function (thisTag) {
return !uniqueList.some(function(uniqueTag) {
return uniqueTag.id === thisTag.id && uniqueTag.taglevel === thisTag.taglevel
});
})
);
}, []
);
完整代码在此代码中:
答案 0 :(得分:0)
在渲染功能中,我使用" var PHOTODATA = this.state.PHOTODATA",所以我可以像以前一样使用它。
我也没有在远处定义ComponentDidMount而是使用" export"像这样:
void delete_mem(){
mem_block = NULL;
free(mem_block);
}
这现在有效:
export default React.createClass({
componentWillMount () {
return fetch("http://localhost:8000/api")
.then((response) => response.json())
.then((json) => {
console.log(json);
this.setState({testapi: json})
})
},