javascript - 如何让条码扫描仪从数据库中检查条码编号?

标签 javascript react-native react-native-camera

有没有办法让条码扫描仪检查本地数据库中的条码编号?我一直在尝试在谷歌上进行一些搜索,但没有类似这样的教程。


import DataBase from '../Data/DataBase';

class BarCodeReader extends Component {
  constructor(props) {
    super(props);
    this.camera = null;
    this.barcodeCodes = [];

    this.state = {
      camera: {
        type: RNCamera.Constants.Type.back,
        flashMode: RNCamera.Constants.FlashMode.auto,
      },
    };
  }

  onBarCodeRead(scanResult) {
    if (scanResult.data != null) {
      if (!this.barcodeCodes.includes(scanResult.data)) {
        this.barcodeCodes.push(scanResult.data);
        alert(scanResult.data);
      }
    }
    return;
  }

  render() {
    return (
      <View style={styles.container}>
        <RNCamera
          ref={(ref) => {
            this.camera = ref;
          }}}
          onBarCodeRead={this.onBarCodeRead.bind(this)}
        />
      </View>
    );
  }
}

const DataBase = [
  {
    name: 'text',
    company: 'text',
    extra: '7 310350 118670',
  },
];
export default DataBase;

最佳答案

import codes from '../Data/codes';

class BarCodeReader extends Component {
  constructor(props) {
    super(props);
    this.camera = null;
    this.barcodeCodes = [];

    this.state = {
      camera: {
        type: RNCamera.Constants.Type.back,
        flashMode: RNCamera.Constants.FlashMode.auto,
      },
    };
  }
  
  validateCode(scanResult){
    const codeData = codes.find(codeMetadata => {
       return codeMetadata.id === scanResult.data 
    })
    
    if(codeData){
      alert("code valid" + codeData)
    } else {
      alert("code not found")
    }
  }

  onBarCodeRead(scanResult) {
    if (scanResult.data != null) {
      if (!this.barcodeCodes.includes(scanResult.data)) {
        this.barcodeCodes.push(scanResult);
        this.validateCode(scanResult)
      }
    }
    return;
  }

  render() {
    return (
      <View style={styles.container}>
        <RNCamera
          ref={(ref) => {
            this.camera = ref;
          }}}
          onBarCodeRead={this.onBarCodeRead.bind(this)}
        />
      </View>
    );
  }
}

const codes = [
  {
    id: "code-id-text"
    name: 'text',
    company: 'text',
    extra: '7 310350 118670',
  },

关于javascript - 如何让条码扫描仪从数据库中检查条码编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65569708/

相关文章:

javascript - 如何解决 react native 样式图标错误

reactjs - Reanimated 2 Hook 中依赖参数的更好用例是什么?

react-native - React 0.18 导致模块错误

javascript - 两行文本和溢出是虚线

javascript - 将 anchor 替换为它的innerHTML

react-native - 无法解析模块 `@expo/vector-icons`

javascript - 如何一次扫描一个条码? [ react native 相机]

javascript 相当于 java 的 Map.getKey()

javascript - 如何删除javascript中的表单自动填充

android - 先按下不允许后如何授予对 react-native-camera 的访问权限?