问题描述
我正在尝试向我的 node.js 服务器发出我的本机应用程序的 ajax 请求,但是当我在博览会上加载应用程序时,它给了我一个错误“找不到变量:res”。
import React from 'react'
import {
ScrollView,StyleSheet,View,} from 'react-native';
import Card from '../components/Card'
import CardList from '../components/CardList'
export default class HomeScreen extends React.Component {
constructor(props) {
super(props);
this.state = {
error: null,isLoaded: false,items: []
};
}
static navigationoptions = {
title: 'Menu',};
componentDidMount() {
fetch("https://127.0.0.1:4001/menu")
.then(res => res.json())
.then(
(result) => {
this.setState({
isLoaded: true,items: result.items
});
},(error) => {
this.setState({
isLoaded: true,error
});
}
)
}
render() {
if (res) {
return <View><Text>Error: {error.message}</Text></View>;
} else if (!isLoaded) {
return <View><Text>Loading...</Text></View>;
} else {
return (
<View style={styles.container}>
<ScrollView style={styles.scrollViewContainer}>
<View >
<CardList title={'Pizzas'}>
{pizza.map(pizza => (<Card style={styles.card} name={pizza.name} description={pizza.decs} />))}
</CardList>
<CardList title={'others'}>
<Card style={styles.card} />
<Card style={styles.card} />
<Card style={styles.card} />
<Card style={styles.card} />
<Card style={styles.card} />
<Card style={styles.card} />
<Card style={styles.card} />
</CardList>
</View>
</ScrollView>
<View style={styles.headerContainer}></View>
</View>
)
}
}
}
我大部分是从https://reactjs.org/docs/faq-ajax.html
复制的任何帮助,提前致谢
解决方法
发生错误是因为您使用了未声明的 res
变量。您需要在 if 块内使用 this.state.error
来代替渲染内的 res。
你还需要用 this.state.items 来换披萨