Я новичок в React
и React native
и пытаюсь сделать retrieve data from an API
, а затем визуализирую его, но у меня, похоже, возникают проблемы.Получение undefined не является объектом в React native при рендеринге
Я могу получить данные из API
в порядке, но когда я попробую и render
, я получаю всевозможные ошибки.
По существу, все, что я пытаюсь сделать, это отобразить фотографии, которые возвращаются из API. Должно быть просто правильно? Был бы признателен всем, кто может указать мне на правильный путь.
Я получаю ошибки как:
неопределенному не является объектом (оценка 'this.props.photos') в RenderPhotos_render
я, возможно, прыгнул в React Native
слишком рано .. . Извините за недостаток знаний!
var AwesomeProject = React.createClass({
getInitialState: function() {
return {
isLoading: true,
photos: this.props.photos
};
},
componentWillMount: function(){
fetch("http://localhost:3000/api/photos/", {
method: "GET",
headers: {
"x-access-token":"xxxxx",
"x-key":"xxxx"
},
})
.then((response) => response.json())
.then((responseData) => {
AlertIOS.alert(
"GET Response",
"Search Query -> " + JSON.stringify(responseData)
)
this.setState({
isLoading: false
});
this.setState({
photos: JSON.stringify(responseData)
});
})
.done();
},
render: function() {
if(this.state.isLoading){
return <View><Text>Loading...</Text></View>
}
return (
<RenderPhotos photos={this.props.photos}/>
);
},
});
var RenderPhotos = React.createClass({
getInitialState: function() {
return {
photos: this.props.photos
};
},
render: function(){
var photos = Photos;
return (
<View>
<Text> {this.props.photos[0]} </Text>
</View>
)
}
});
Небольшая модификация не может упасть государство от RenderPhotos, так как вы больше не используете оно – rmevans9
Кроме того, вар фотографии = Фотографии не имеет смысла в функции визуализации. И, наконец, this.props.photos начинаются как неопределенные (возможно, состояние задано с помощью свойства, которое не показано), которое закончилось бы неопределенной ошибкой, так как вы прямо пытаетесь отобразить индекс 0 массива. – rmevans9