在QRcodeScanner React native中打开/关闭手电筒

时间:2019-04-30 10:23:32

标签: android react-native flashlight

我正在使用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不会更改

任何想法如何更改相机道具的状态??

2 个答案:

答案 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

手电筒现在打开吗?