如何解决反应原生中的 Ajax 调用无法找到变量:res
我正在尝试向我的 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 来换披萨
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。