【发布时间】:2021-08-22 14:24:21
【问题描述】:
您好,我想在 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",
},
});
【问题讨论】:
标签: javascript react-native web-deployment thermal-printer