如何在 react-native 中的 onPress 按钮上滚动顶部?

Posted

技术标签:

【中文标题】如何在 react-native 中的 onPress 按钮上滚动顶部?【英文标题】:How can i scroll top on onPress of button in react-native? 【发布时间】:2018-07-16 13:56:04 【问题描述】:

我在简单屏幕的底部添加了按钮,我想在按下按钮时滚动顶部。什么代码添加到按钮onPress?,请提出任何解决方案,提前谢谢。

【问题讨论】:

【参考方案1】:

我假设您在页面上使用 ScrollView,因为您想在底部按下按钮时滚动到顶部。在这种情况下,您可以使用ScrollViewscrollTo(x: 0, y: 0, animated: true) 方法。你可以像这样在 render 方法之前调用一个函数:

goToTop = () => 
   this.scroll.scrollTo(x: 0, y: 0, animated: true);

render() 
 return (
  <ScrollView
    ref=(c) => this.scroll = c
  >
    // [rest of your code here...]
    <Button title='Go To Top' onPress=this.goToTop />
  </ScrollView>
 )

基本上,您必须为您的 scrollView 创建一个引用 (ref),然后您可以在代码中的任何位置调用它的方法。

如果您不使用 ScrollView,而是使用 Flatlist 组件,它还有一个通过其 refs 公开的方法,称为 scrollToOffset()。

【讨论】:

如何滚动底部?【参考方案2】:

在 React Native 中对于功能组件,需要做以下事情才能在 ScrollView 中滚动 Top-

1.在功能组件中全局定义:- const scroll = React.createRef();

    然后,在 ScrollView 中添加:- ref=scroll。

3.最后,点击添加:- scroll.current.scrollTo(0); // 将滚动到 y 位置 0 的顶部

【讨论】:

【参考方案3】:

// const scroll = React.createRef();

如果你得到 error that scroll.current is Null 然后试试这个

const scroll = React.useRef();

这在我的案例中有效。

【讨论】:

以上是关于如何在 react-native 中的 onPress 按钮上滚动顶部?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 react-native 项目中保存 info.plist 中的更改

如何使用给定的 nativeID 识别目标 c 中的视图(在 react-native 中给出)

如何在 react-native 中的 onPress 按钮上滚动顶部?

如何在reducer中专门使用redux来获取react-native中的API?

如何缩小 React-Native 地图

为啥我的代码不能在 web 中的 react-native 代码中运行