【问题标题】:React Native - useRef is giving null value on RNCameraReact Native - useRef 在 RNCamera 上给出空值
【发布时间】:2020-03-14 07:59:36
【问题描述】:

我是第一次使用 react-native-camera,我正在使用功能组件。我想在单击按钮时打开相机,但使用 ref 不起作用。这是我的代码:

const camContainer = () => {
  const cameraRef = useRef(null);

  useEffect(() => {
    console.log(cameraRef);
  }, [cameraRef]);

  const openCamera = () => {
    const options = {quality: 0.5, base64: true};
    // cameraRef.current.takePictureAsync(options);
    console.log(cameraRef);
  };

  return (
    <TouchableOpacity onPress={() => openCamera()}>
      <Text>Open Camera</Text>
      {!cameraRef && (
        <View>
          <RNCamera ref={cameraRef} style={{flex: 1, alignItems: 'center'}} />
        </View>
      )}
    </TouchableOpacity>
  );
};

我使用useEffect 登录cameraRef,但cameraRef.current 仍然为空,我不明白如何打开相机?

【问题讨论】:

  • 你还需要 ref 吗?我认为删除 !cameraRef 应该为您的情况显示相机。
  • 我删除了cameraRef,但是使用cameraRef我无法打开相机,帮助我@GeneSy

标签: javascript reactjs react-native react-hooks react-native-camera


【解决方案1】:

在 RNCamera 的文档中,应该是这样的

<Camera
  ref={ref => {
    this.camera = ref;
  }}
/>;
// ...
snap = async () => {
  if (this.camera) {
    let photo = await this.camera.takePictureAsync();
  }
};

【讨论】:

    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    相关资源
    最近更新 更多