찾다

 >  Q&A  >  본문

React Native에서 백엔드로 데이터를 전달하는 방법

저는 IOS용 바코드 스캐너 앱을 개발하려고 합니다. 이제는 바코드에서 데이터를 읽을 수 있는 스캐너를 만들었습니다. 하지만 데이터를 읽는 것뿐만 아니라 데이터를 데이터베이스에 저장하고 싶습니다. 반대편의 소스 코드 중 일부를 탐색하는 것은 내 코드입니다.

scanner.js

이미 바코드에서 데이터를 읽을 수 있는 스캐너의 소스는 다음과 같습니다

으아악

백엔드로 데이터를 보내는 방법을 찾아보니 이런 코드가 필요한데, 이 코드를 scanner.js에 어떻게 구현하나요? 모두가 도움을 받을 수 있기를 바랍니다. 감사합니다

import React, { useState, useEffect,Component,onMount} from 'react';
import { Text,TextInput, View, StyleSheet, Button } from 'react-native';
import { BarCodeScanner } from 'expo-barcode-scanner';
import {useNavigation} from'@react-navigation/native';
import {StatusBar} from 'expo-status-bar';



 

  export default function Scanner () {
  
  const [hasPermission, setHasPermission] = useState(null);
  const [scanned, setScanned] = useState(false);
  const [userid, setText] = useState('Not yet scanned')
  const [currentDate, setCurrentDate] = useState('');
  const navigation = useNavigation();


  const askForCameraPermission = () => {
    (async () => {
      const { status } = await BarCodeScanner.requestPermissionsAsync();
      setHasPermission(status === 'granted');
    })()
  }

  // Request Camera Permission
  useEffect(() => {
    askForCameraPermission();
  }, []);

  useEffect(() => {
    var date = new Date().getDate(); //Current Date
    var month = new Date().getMonth() + 1; //Current Month
    var year = new Date().getFullYear(); //Current Year
    var hours = new Date().getHours(); //Current Hours
    var min = new Date().getMinutes(); //Current Minutes
    var sec = new Date().getSeconds(); //Current Seconds
    setCurrentDate(
      date + '/' + month + '/' + year 
      + ' ' + hours + ':' + min + ':' + sec
    );
  }, []);
  // What happens when we scan the bar code

  const handleBarCodeScanned = ({ type, data }) => {

   
    setScanned(true);
     
     
     setText(data )
     
   
  };
 
  // Check permissions and return the screens
  if (hasPermission === null) {
    return (
      <View style={styles.container}>
        <Text>Requesting for camera permission</Text>
      </View>)
  }
  if (hasPermission === false) {
    return (
      <View style={styles.container}>
        <Text style={{ margin: 10 }}>No access to camera</Text>
        <Button title={'Allow Camera'} onPress={() => askForCameraPermission()} />
      </View>)
  }
 
  // Return the View
  return (
     
    <View style={styles.container}>
      <View style={styles.barcodebox}>
        <BarCodeScanner
          onBarCodeScanned={scanned ? undefined : handleBarCodeScanned}
          style={{ height: 400, width: 400 }} />
      </View>
      
      <Text style={styles.maintext}>{userid + '\n'+currentDate}
    
      </Text>

      
      {
        scanned && <Button title={'Scan again?'} onPress={() => setScanned(false)} color='tomato' />
         
      }
     
      {
        scanned && <Button title={'OK'} onPress={()=> navigation.navigate('Home',{userid})} /> 
         
      }
    </View>
  );
}



const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
  maintext: {
    fontSize: 16,
    margin: 20,
  },
  barcodebox: {
    alignItems: 'center',
    justifyContent: 'center',
    height: 300,
    width: 300,
    overflow: 'hidden',
    borderRadius: 30,
    backgroundColor: 'tomato'
  }
});

P粉878542459P粉878542459273일 전393

모든 응답(1)나는 대답할 것이다

  • P粉770375450

    P粉7703754502024-03-30 08:00:07

    scanner.js에서 구현해 봤는데 괜찮더라구요

    으아아아

    .php 삽입

    으아아아

    바코드를 스캔하고 "확인" 버튼을 클릭하면 오류가 표시됩니다 유형 오류: 네트워크 요청 실패

    회신하다
    0
  • 취소회신하다