React Hooks - 带有钩子的功能组件中 ScrollView 的引用?

Sea*_*sey 2 reactjs react-native

我将 React Native 项目从所有类组件转换为带有钩子的功能组件。我有一个带有 ScrollView 的消息页面,可以自动滚动到底部。我如何将其转换为在功能组件中工作?使用 ref 和 this.scrollView 会导致错误。

<ScrollView 
   ref={ref => this.scrollView = ref}
   onContentSizeChange={(contentWidth, contentHeight)=> {this.scrollView.scrollToEnd({animated: true})}}
>
{...content...}
</ScrollView>

Run Code Online (Sandbox Code Playgroud)

Sam*_*l G 17

在组件的主体中:

function App(props) {    
   const scrollViewRef = useRef();
...
Run Code Online (Sandbox Code Playgroud)

在组件上:

<ScrollView 
   ref={scrollViewRef}
   onContentSizeChange={(contentWidth, contentHeight)=> {scrollViewRef.current.scrollToEnd({animated: true})}}
>
{...content...}
</ScrollView>
Run Code Online (Sandbox Code Playgroud)

  • 这修复了引用错误,但我在使用 this.scrollView 的 onContentSizeChange 中仍然出现错误“未定义不是对象” (2认同)