Reputation: 47
I'm trying to popular a FlatList through a request, however the list is getting empty. I've tried several ways and I can not fill FlatList. Can someone help me?
import React, {Component} from 'react';
import {Text, View, FlatList} from 'react-native';
export default class App extends Component{
constructor(){
super();
this.state = {
listaTarefas: ''
}
fetch('https://b7web.com.br/todo/25088')
.then((r)=> r.json())
.then((json)=>{
let state = this.state;
state.listaTarefas = json.todo;
this.setState(state);
})
}
render() {
return (
<View>
<FlatList
data = {this.state.listaTarefas}
renderItem = {({item}) => {
<View>
<Text>Id: {item.id}</Text>
<Text>Item: {item.item}</Text>
<Text>Item: {item.done}</Text>
</View>
}}
keyExtractor = {(item, index) => item.id}
/>
</View>
);
}
}
Upvotes: 0
Views: 132
Reputation: 13906
You need a small bracket, not a square bracket.
And it is better to separate them so that they are legible.
_renderItem = ({item}) => (
<View>
<Text>Id: {item.id}</Text>
<Text>Item: {item.item}</Text>
<Text>Item: {item.done}</Text>
</View>
);
...
render() {
return (
<View>
<FlatList
data = {this.state.listaTarefas}
renderItem={this._renderItem}
keyExtractor = {(item, index) => item.id}
/>
</View>
);
}
Upvotes: 1
Reputation: 145
Typo
renderItem = {({item}) => ( // {
<View>
<Text>Id: {item.id}</Text>
<Text>Item: {item.item}</Text>
<Text>Item: {item.done}</Text>
</View>
)} // }}
Upvotes: 1