滚动KeyboardAwareScrollView以在渲染视图时结束



我有一个KeyboardAwareScrollView,我需要它在某个事件后滚动到末尾。每当我按下按钮时,我的组件也会渲染相机视图。它看起来像这样:

if(usingCamera){
return(
<CustomCameraComponent />
)
} 
return (
<KeyboardAwareScrollView innerRef={ref => {
this.scroll = ref
}}>
...stuff
</KeyboardAwareScrollView>

usingCamera是一个布尔状态变量,当我按下按钮时,它会发生变化,从而在屏幕上显示相机视图。然后我拍了一张照片,并将状态改回原始视图(键盘滚动视图(。当我从相机视图返回时,我尝试执行this.scroll.scrollToEnd(),但似乎this.scroll尚未加载,因此它不会向下滚动。我还有别的办法吗?

您可以使用Workaround,但它有点脏。我在github上创建了一个问题,但在此之前,您可以进入node_modules,找到dependence的源。然后转到src/KeyboardAwareBase.js,将行129修改为以下

旧:

const bottomYOffset = this._keyboardAwareView.contentSize.height - this._keyboardAwareView.layout.height + this._keyboardAwareView.props.contentInset.bottom;

新增:

const bottomYOffset = this._keyboardAwareView.contentSize.height - this._keyboardAwareView.layout.height;

这就是解决未定义错误的方法。

PS:我使用的是2.1.0版本的react原生键盘感知滚动视图

最新更新