3 回答
TA贡献1866条经验 获得超5个赞
当您使用类组件时,您需要创建一个渲染方法,返回仅在函数组件中有效,请尝试
import { View, FlatList, Text, TouchableOpacity } from 'react-native'
class Products extends Component {
constructor(props){
super(props);
this.state={
dataSource: []
}
}
componentDidMount(){
fetch("http://localhost:8000/index.php")
.then(response => response.json())
.then((responseJson) => {
this.setState({
dataSource: responseJson
})
})
.catch(error => console.log(error))
}
renderItem = (data) =>
<TouchableOpacity>
<Text>{data.item.product_name}</Text>
<Text>{data.item.product_description}</Text>
<Text>{data.item.product_model}</Text></TouchableOpacity>
render() {
return (<View>
<FlatList
data={this.state.dataSource}
renderItem={item => this.renderItem(item)}
keyExtractor={item => item.id}
/>
</View>);
}
}
export default Products
TA贡献1712条经验 获得超3个赞
尝试将 extraData 道具添加到 FlatListextraData={this.state.dataSource}
它的作用是在 extraData 中的指定数据发生更改时重新呈现 FlatList 。
TA贡献1804条经验 获得超7个赞
当您使用基于类的组件时,您必须return(...)使用render()函数包装。
render() {
return (
<View>
<FlatList
data={this.state.dataSource}
renderItem={item => this.renderItem(item)}
keyExtractor={item => item.id}
/>
</View>
);
}
添加回答
举报