我正在使用react-native-qrcode-scanner
,我想做的是:当用户按下手电筒图标flashLight时,
我做到了:
<QRCodeScanner
showMarker
onRead={this.onSuccess.bind(this)}
cameraStyle={{ height: SCREEN_HEIGHT }}
cameraProps={{ flashMode: this.state.flashLight ? RNCamera.Constants.FlashMode.on : RNCamera.Constants.FlashMode.off, captureAudio: false }}
相机道具作品 但是当我更改state.flashLight(true或false)时,flashLight不会更改
任何想法如何更改相机道具的状态??
答案 0 :(得分:2)
使用react-native-qrcode-scanner 版本1.2.2 或更高版本
尝试使用 flashMode 代替 cameraProps 。
这是一个可行的示例:
<QRCodeScanner
ref={(node) => { this.scanner = node }}
onRead={this.onSuccess.bind(this)}
showMarker
cameraStyle={{ height: SCREEN_HEIGHT }}
customMarker={this.renderCustomMarker}
flashMode={this.state.torchEnable ? RNCamera.Constants.FlashMode.torch : RNCamera.Constants.FlashMode.off}
/>
this.state.torchEnable 是一个布尔变量,用于设置打开或关闭闪光灯。
有关更多信息,请阅读方法> flashMode
上的Github repo说明。答案 1 :(得分:1)
尝试替换:
RNCamera.Constants.FlashMode.on
具有:
RNCamera.Constants.FlashMode.torch
手电筒现在打开吗?