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>
  );
}