/ / listview a načítanie reac natívne nefunguje - javascript, json, listview, načítanie

listview a načítať reakciu native nefunguje - javascript, json, listview, fetch

Snažím sa načítať informácie zo súboru JSON pomocou načítania a zobrazovať údaje pomocou natívnej zložky Listview React. Údaje z načítania sa už načítajú do môjho súboru this.state.films, pretože ak sa pokúsim

<Text>{this.state.films[0].title}</Text>

Dostal som názov filmu a to je v poriadku.Ale keď vyskúšam Listview, zobrazí sa iba „[]“. Čo robím zle?? Vlastne sledujem Reagovať natívneho doktora a snažím sa pripojiť k dvom sekciám: „Sieťovanie“ a „Používanie zobrazenia zoznamu“. Odtiaľ som vzal json. Prosím pomôžte, Vďaka!

Že môj kód index.windows.js

import React, { Component } from "react";
import {
AppRegistry,
StyleSheet,
Text,
View,
Image,
TextInput,
ListView
} from "react-native";

class AwesomeProject extends Component {
constructor(props) {
super(props)
this.state = { films: [] }
const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
}

componentWillMount() {
fetch("http://facebook.github.io/react-native/movies.json")
.then((response) => {
return response.json()
})
.then((movies) => {
this.setState({ films: ds.cloneWithRows(movies.movie) })
})
}

render() {
return (
<View style={{paddingTop: 22}}>
<ListView
dataSource={this.state.films}
renderRow={(rowData) => <Text>{rowData.title}</Text>}
/>
</View>
);
}

}


AppRegistry.registerComponent("AwesomeProject", () => AwesomeProject);

odpovede:

0 pre odpoveď č. 1

React Native má jednoduchšie riešenie, a FlatList, ktorý funguje pekne a obklopuje ho ListView. Môže byť použitý takto:

import React, { Component } from "react";
import {
AppRegistry,
StyleSheet,
Text,
View,
Image,
TextInput,
FlatList
} from "react-native";

class AwesomeProject extends Component {

state = {
films: []
}

componentWillMount() {
fetch("http://facebook.github.io/react-native/movies.json")
.then( response => response.json())
.then((films) => {
this.setState({ films })
})
}

render() {
return (
<View style={{paddingTop: 22}}>
<FlatList
data={this.state.films}
renderItem={({item}) => <Text>{item.title}</Text>}
/>
</View>
);
}

}


AppRegistry.registerComponent("AwesomeProject", () => AwesomeProject);