【发布时间】:2021-04-07 13:59:37
【问题描述】:
export default function App({ navigation, navigation: { goBack } }) {
const [hasPermission, setHasPermission] = useState(null);
const [scanned, setScanned] = useState(false);
const [data, setData] = useState("");
const handleBarCodeScanned = ({ data }) => {
setScanned(true);
axios
.get(
`https://api.edamam.com/api/food-database/v2/parser?upc=${data}&app_id=2626c70d&app_key=0c0f87ae4e5437621363ecf8e7ea80ae&page=20`
)
.then((res, data) => {
setData(res.data.hints);
navigate("Food", {
title: data.label, <--------------------------
});
})
.catch((error) => {
console.log(error.response.data);
});
};
return (
<View style={styles.container}>
<BarCodeScanner
onBarCodeScanned={scanned ? undefined : handleBarCodeScanned}
style={StyleSheet.absoluteFillObject}
>
<TouchableOpacity onPress={() => goBack()}>
<Icon
name="angle-left"
color="white"
size={40}
style={{ top: hp("10%"), left: wp("5%") }}
/>
</TouchableOpacity>
</BarCodeScanner>
</View>
);
}
您好,我正在尝试将title 发送到使用React Navigation 的页面,因此当用户扫描一个项目,并且在数据库中找到该项目时,它会将他/她带到食物页面上那个常数。目前数据是从数据库中正确获取的,但是当我运行代码时它说Possible Unhadled Promise Rejection: TypeError: undefined is not an object
【问题讨论】:
-
哪一行会抛出这个问题?
-
在调用 navigateefunction 时需要使用
res.data.label而不是data.label -
我编辑并在行上放了一个箭头
-
我试过了,结果还是一样,API文档链接:developer.edamam.com/food-database-api-docs
标签: reactjs react-native api axios react-navigation