首页 > 解决方案 > 我想用蓝牙热敏打印机打印收据以响应本机

问题描述

您好,我想用蓝牙热敏打印机在 react native 中打印收据。到目前为止,我的代码可以正常工作,但会发出警告。使用此代码,我可以打印收据,请帮助消除此警告。这是我的代码。警告可能未处理的 Promise Rejection (id: 0) TypeError:null is not an object (evalating 'RNBLEPrinter.init')


    import React, { useState, useEffect } from "react";
    import {
      USBPrinter,
      NetPrinter,
      BLEPrinter,
    } from "react-native-thermal-receipt-printer";
    import { View, Text, TouchableOpacity, StyleSheet } from "react-native";
    
    function Print() {
      const [printers, setPrinters] = useState([]);
      const [currentPrinter, setCurrentPrinter] = useState();
    
      useEffect(() => {
        BLEPrinter.init().then(() => {
          BLEPrinter.getDeviceList().then(setPrinters);
        });
      }, []);
    
      (_connectPrinter) => (printer) => {
        //connect printer
        BLEPrinter.connectPrinter(printer.inner_mac_address).then(
          setCurrentPrinter,
          (error) => console.warn(error)
        );
      };
    
      printTextTest = () => {
        currentPrinter && USBPrinter.printText("this is new print");
      };
    
      printBillTest = () => {
        currentPrinter && USBPrinter.printBill("this is for bill testing");
      };
      return (
        <View style={styles.container}>
          {printers.map((printer) => (
            <TouchableOpacity
              key={printer.inner_mac_address}
              onPress={() => _connectPrinter(printer)}
            >
              {`device_name: ${printer.device_name}, inner_mac_address: ${printer.inner_mac_address}`}
            </TouchableOpacity>
          ))}
          <TouchableOpacity onPress={printTextTest}>
            <Text>Print Text</Text>
          </TouchableOpacity>
          <TouchableOpacity onPress={printBillTest}>
            <Text>Print Bill Text</Text>
          </TouchableOpacity>
        </View>
      );
    }
    export default Print;
    
    const styles = StyleSheet.create({
      container: {
        flex: 1,
        justifyContent: "center",
        alignItems: "center",
      },
    });

标签: javascriptreact-nativeweb-deploymentthermal-printer

解决方案


看起来它可能来自react-native-thermal-receipt-printer图书馆。我通常在 index.js 文件中查看节点模块,它会进行初始化调用。


推荐阅读