【发布时间】:2019-11-16 23:17:15
【问题描述】:
我是 ReactNative 的新手,我正在尝试从这里获取一些数据 https://www.dystans.org/route.json?stops=Hamburg|Berlin
当我尝试使用 console.log 结果时,它会返回完整的 API 响应。我不知道为什么在第一个 results.distance 中有效并返回距离,但是当我尝试在 FlatList 中执行此操作时,没有返回任何内容。有时,当我只想返回 item.distance 但不能像<Text>{item.stops[0].nearByCities[0].city}</Text> 这样的东西在我的代码中也没有在控制台中的任何地方时它会起作用。我收到错误:
undefined 不是对象(评估 'results.stops[0]')
imports...
const NewOrContinueScreen = ({ navigation }) => {
const [searchApi, results, errorMessage] = useDystans();
console.log(results.distance);
return (
<SafeAreaView forceInset={{ top: "always" }}>
<Text h3 style={styles.text}>
Distance: {results.distance}
</Text>
<Spacer />
<FlatList
extraData={true}
data={results}
renderItem={({ item }) => (
<Text>{item.distance}</Text>
// <Text>{item.stops[0].nearByCities[0].city}</Text>
)}
keyExtractor={item => item.distance}
/>
<Spacer />
</SafeAreaView>
);
};
const styles = StyleSheet.create({});
export default NewOrContinueScreen;
这是我的钩子代码:
import { useEffect, useState } from "react";
import dystans from "../api/dystans";
export default () => {
const [results, setResults] = useState([]);
const [errorMessage, setErrorMessage] = useState("");
const searchApi = async () => {
try {
const response = await dystans.get("route.json?stops=Hamburg|Berlin", {});
setResults(response.data);
} catch (err) {
setErrorMessage("Something went wrong with useDystans");
}
};
useEffect(() => {
searchApi();
}, []);
return [searchApi, results, errorMessage];
};
【问题讨论】:
标签: javascript reactjs api react-native react-native-flatlist