Javascript 使用axios和条形码扫描仪从API获取数据 导出默认函数App(){ const[hasPermission,setHasPermission]=useState(null); const[scanned,setScanned]=使用状态(false); const[data,setData]=useState(“”); useffect(()=>{ (异步()=>{ const{status}=wait BarCodeScanner.requestPermissionsAsync(); setHasPermission(状态==“已授予”); })(); }, []); 常量手柄代码=({data})=>{ (真实的); 警报(`Bar code with data${data}已被扫描!`); axios .得到( `https://api.edamam.com/api/food-database/v2/parser?ingr=${data}&app_id=2626c70d&app_key=0C0F87AE4E54376213363ECF8E7EA80AE&page=20` ) 。然后((res)=>{ setData(console.log(res.data.hints)); }) .catch((错误)=>{ console.log(error.response.data); }); }; if(hasPermission==null){ 返回请求相机许可; } if(hasPermission==false){ 不允许进入摄像机; } 返回( {data} ); }
您好,这个应用程序的目标是让用户扫描条形码并从数据库中挑选食物,我正在尝试使用Javascript 使用axios和条形码扫描仪从API获取数据 导出默认函数App(){ const[hasPermission,setHasPermission]=useState(null); const[scanned,setScanned]=使用状态(false); const[data,setData]=useState(“”); useffect(()=>{ (异步()=>{ const{status}=wait BarCodeScanner.requestPermissionsAsync(); setHasPermission(状态==“已授予”); })(); }, []); 常量手柄代码=({data})=>{ (真实的); 警报(`Bar code with data${data}已被扫描!`); axios .得到( `https://api.edamam.com/api/food-database/v2/parser?ingr=${data}&app_id=2626c70d&app_key=0C0F87AE4E54376213363ECF8E7EA80AE&page=20` ) 。然后((res)=>{ setData(console.log(res.data.hints)); }) .catch((错误)=>{ console.log(error.response.data); }); }; if(hasPermission==null){ 返回请求相机许可; } if(hasPermission==false){ 不允许进入摄像机; } 返回( {data} ); },javascript,reactjs,react-native,axios,barcode-scanner,Javascript,Reactjs,React Native,Axios,Barcode Scanner,您好,这个应用程序的目标是让用户扫描条形码并从数据库中挑选食物,我正在尝试使用axios和upc获取数据,这是我使用条形码扫描仪获得的代码,当前运行代码时它会给我以下错误:对象作为子对象无效(找到:具有键{data}的对象)。如果要呈现子对象的集合,请改用数组。 指向API文档的链接: 指向条形码扫描仪文档的链接: export default function App() { const [hasPermission, setHasPermission] = useState(null);
axios
和upc
获取数据,这是我使用条形码扫描仪获得的代码,当前运行代码时它会给我以下错误:对象作为子对象无效(找到:具有键{data}的对象)。如果要呈现子对象的集合,请改用数组。
指向API文档的链接:
指向条形码扫描仪文档的链接:
export default function App() {
const [hasPermission, setHasPermission] = useState(null);
const [scanned, setScanned] = useState(false);
const [data, setData] = useState("");
useEffect(() => {
(async () => {
const { status } = await BarCodeScanner.requestPermissionsAsync();
setHasPermission(status === "granted");
})();
}, []);
const handleBarCodeScanned = ({ data }) => {
setScanned(true);
alert(`Bar code with data ${data} has been scanned!`);
axios
.get(
`https://api.edamam.com/api/food-database/v2/parser?ingr=${data}&app_id=2626c70d&app_key=0c0f87ae4e5437621363ecf8e7ea80ae&page=20`
)
.then((res) => {
setData(console.log(res.data.hints));
})
.catch((error) => {
console.log(error.response.data);
});
};
if (hasPermission === null) {
return <Text>Requesting for camera permission</Text>;
}
if (hasPermission === false) {
return <Text>No access to camera</Text>;
}
return (
<View style={styles.container}>
<BarCodeScanner
onBarCodeScanned={scanned ? undefined : handleBarCodeScanned}
style={StyleSheet.absoluteFillObject}
/>
<Text>{data}</Text>
</View>
);
}