如何使Expo.takeSnapshotAsync在Android上运行

时间:2017-12-22 03:24:28

标签: reactjs react-native expo

我正试图弄清楚如何在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解析视图。

我试图找到一个有效的例子,但不能。我认为问题是我没有定义哪个视图我正确地进行了屏幕截图,但我似乎无法弄明白。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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

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