我有一个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原生键盘感知滚动视图