如何解决 React Native 中 ref reading undefined 的问题?
How to solve ref reading undefined in React Native?
我正在开发一个 React Native
应用程序,我需要在 Keyboard
中有一个监听器,每次打开它时我都会滚动到页面末尾。
我是这样实现这个机制的
constructor(props) {
super(props);
this._scrollView = React.createRef();
}
componentDidMount() {
this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);
this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);
}
componentWillUnmount() {
this.keyboardDidShowListener.remove();
this.keyboardDidHideListener.remove();
}
_keyboardDidShow() {
console.log(this._scrollView)
//this._scrollView.scrollToEnd({ animated: true });
}
_keyboardDidHide() {
}
//Render
<Animated.ScrollView
contentContainerStyle={{ flexGrow: 1 }}
keyboardShouldPersistTaps='handled'
ref={(scrollView) => { this._scrollView = scrollView; }}
>
但无论我尝试了什么 _scrollView
_keyboardDidShow
中的 ref 是未定义的
我尝试通过 Button
单击控制台记录 ref,它读取正常
请问我该如何解决。
为了让它工作,我必须绑定监听器。
我正在开发一个 React Native
应用程序,我需要在 Keyboard
中有一个监听器,每次打开它时我都会滚动到页面末尾。
我是这样实现这个机制的
constructor(props) {
super(props);
this._scrollView = React.createRef();
}
componentDidMount() {
this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._keyboardDidShow);
this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this._keyboardDidHide);
}
componentWillUnmount() {
this.keyboardDidShowListener.remove();
this.keyboardDidHideListener.remove();
}
_keyboardDidShow() {
console.log(this._scrollView)
//this._scrollView.scrollToEnd({ animated: true });
}
_keyboardDidHide() {
}
//Render
<Animated.ScrollView
contentContainerStyle={{ flexGrow: 1 }}
keyboardShouldPersistTaps='handled'
ref={(scrollView) => { this._scrollView = scrollView; }}
>
但无论我尝试了什么 _scrollView
_keyboardDidShow
中的 ref 是未定义的
我尝试通过 Button
单击控制台记录 ref,它读取正常
请问我该如何解决。
为了让它工作,我必须绑定监听器。