【发布时间】:2020-09-03 01:55:28
【问题描述】:
我正在尝试只制作一个用于照片和视频录制的按钮:
按一下就会拍照
当我拿着它时,过了一会儿视频正在录制
视图中的按钮:
<TouchableOpacity
onPressIn={() => onPressInButton()}
onPressOut={() => onPressOutButton()}
</TouchableOpacity>
按钮代码:
const insidePressInButton = async () => {
if (!pressOut) {
setRecordingVideo(true)
console.log('START RECORDING VIDEO')
}
else {
await takePicture()
console.log('NOT STARTED RECORDING -> PICTURE')
}
}
let pressOut = false
const onPressInButton = async () => {
pressOut = false
setTimeout(() => {
insidePressInButton()
}, 1)
}
const onPressOutButton = async () => {
pressOut = true
if (recordingVideo) {
setRecordingVideo(false)
console.log('STOP RECORDING VIDEO')
}
}
在setTimeout() 中,我将时间设置为只有1(很少),等待时间很长(我认为这是 React 重新渲染的问题)
理论上,这个解决方案可行,但我有一个大问题
当我点击一次想要一张图片时,我必须等待超过一秒钟
他想这样做是为了立即拍摄照片,当我按住按钮片刻并按住它时正在录制视频
【问题讨论】:
标签: javascript reactjs react-native react-hooks