繁体   English   中英

反应原生iOS第一次后无法打开相机/图库

[英]react native iOS can't open Camera/Gallery after first time

这是我的源代码:

export default class App extends Component<Props> {
  constructor(props) {
    super(props);
    this.state = {
        isVisible: false,
    };
  }

  openModal = () => {
    this.setState({isVisible: true});
  }

  openPicker = () => {
    this.setState({isVisible: false});
    ImagePicker.openPicker({
      mediaType: "video",
    }).then((video) => {
      console.log(video);
    });
  }

  render() {
    return (
      <View style={styles.container}>
        <TouchableOpacity onPress={this.openModal}>
          <Text>Choose Image</Text>
        </TouchableOpacity>
        {
          this.state.isVisible &&
          <Modal style={styles.modal}>
            <View style={styles.conModal}>
              <TouchableOpacity style={styles.touch} onPress={this.openPicker}>
                <Text style={styles.text}>Open Gallery</Text>
              </TouchableOpacity>
            </View>
          </Modal>
        }
      </View>
    );
  }
}

当用户点击“选择图像”按钮时,应用程序将显示“选择图像”模式,允许用户选择“打开图片库”按钮或其他按钮,例如“打开相机”,...

用户选择“打开图库”按钮后,应用程序将在打开图库之前通过this.setState({isVisible: false})关闭“选择图像”模式。

它可以在Android上完美运行。 但它只能在iOS上运行一次。 下次,应用程序还会显示Gallery,但会立即关闭。

如果我将逻辑更改为:通过this.setState({isVisible: false})关闭“ Choose Image”模式前先打开Gallery,它将起作用。 但是我的顾客不接受。

请帮我。

谢谢。

延迟一段时间后打开画廊。 我认为可能有效

openPicker = () => {
    this.setState({isVisible: false});
 // open gallery after some delay.
    setTimeout(()=>{
       ImagePicker.openPicker({
       mediaType: "video",
    }).then((video) => {
       console.log(video);
    });
    },700) // you can change delay time as per your requirement

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM