Я новичок в React Native и смущен тем, как правильно использовать предоставленный API Fetch.Когда нужно сделать запрос Fetch для React Native Component
Сам вызов (как указано здесь: http://facebook.github.io/react-native/docs/network.html) прост, и я могу выйти из удачного ответа, но когда наступает время визуализации данных, оно не определено.
Я ожидал, что могу определить пустой массив «movies», а затем заменить его, вызвав «setState» из компонента componentDidMount(), который вызовет повторную визуализацию. Это предположение неверно?
В примере ниже результатов в следующей ошибке:
'undefined is not an object (evaluating 'allRowIDs.length')
Заранее спасибо за любую помощь!
import React, { Component } from 'react';
import { AppRegistry, ListView, Text, View } from 'react-native';
class ReactNativePlayground extends Component {
constructor() {
super();
this.state = {
movies: []
}
}
componentDidMount() {
fetch('https://facebook.github.io/react-native/movies.json')
.then((response) => response.json())
.then((responseJson) => {
this.setState({
movies: responseJson.movies
})
})
.catch((error) => {
console.error(error);
});
}
render() {
return (
<View>
<Text>test</Text>
<ListView
dataSource={this.state.movies}
renderRow={(row) => <Text>{row.title}</Text>}
/>
</View>
)
}
}
AppRegistry.registerComponent('ReactNativePlayground',() => ReactNativePlayground);
Попробуйте выполнить регистрацию 'this.state.movies 'перед выражением' return' в вашем методе 'render'. Посмотрите, что это журнал массива или, возможно, объект –