【发布时间】:2019-03-23 12:39:08
【问题描述】:
我能够从 Firebase API 获取数据。我能够将状态设置为收到的数据(我可以在控制台中看到)。但是当我无法渲染组件时(将道具作为获取的数据传递)。这是我的代码:
class NewMeals extends Component {
constructor(props){
super(props);
this.state= {
data:''
}
}
async componentDidMount(){
try{
const res = await fetch('https://frego-cb5b5.firebaseio.com/recipes.json?auth=api_key');
if(!res.ok){
throw Error(res.statusText);
}
const json = await res.json();
this.setState({data:json});
}catch(err){
console.log(err);
}
}
renderItems=()=>{
const items = this.state.data;
const arr = Object.values(items);
arr.forEach(i=>{
return <HomeMeals name={i.title} time={i.time} serve={i.serve}/>
})
}
render(){
const {mainView, CardSection, heading, } = styles;
return(
<View style={mainView}>
<Text style={heading}>New Meals This Week</Text>
<ScrollView contentContainerStyle ={CardSection} horizontal={true} showsHorizontalScrollIndicator={false}>
{this.renderItems()}
</ScrollView>
</ View>
);
}
}
我希望 HomeMeals 组件会在调用 renderItems() 函数时从获取的数据中一一呈现特定名称。但我什么也得不到。
有什么建议吗?
【问题讨论】:
标签: firebase react-native firebase-realtime-database axios fetch