如何让 Expo.takeSnapshotAsync 在 Android 上工作

How to make Expo.takeSnapshotAsync work on Android

我正在尝试弄清楚如何在 https://docs.expo.io/versions/latest/sdk/take-snapshot-async.html

中定义视图参数

函数:

  screenShot = async () => {
      let result = await takeSnapshotAsync(this.pageView, {format: 'jpg', result: 'file', quality: 1.0});
          const file = {
            uri: result,
            name: this.state.shiftIDclean+"-clockIn.jpg",
            type: "image/jpeg"
          }
      }

查看:

  render() {
    return (
      <View ref={view => { this.pageView = view; }}>
        <Text>TEST CONTENT GOES HERE</Tex>
        </View>
    );
  }

这在 iOS 模拟器上工作正常,但在 Andriod 上,我收到一个红屏错误:尝试解析带有不存在的标签 488 的视图。

我试图找到一个工作示例,但找不到。我认为问题是我没有定义要正确截屏的视图,但我似乎无法弄清楚。

我不知道为什么,但将视图更改为这个有效:

  <View
    collapsable={false}
    ref={view => {
      this.pageView = view;
    }}>
<View
  collapsable={false}
  ref={view => {
  this.pageView = view;
}}>

由于 collapsable={false}.
它工作正常 将 collapsable-属性 设置为 false 以禁用此优化并确保此视图存在于本机视图层次结构中。