【问题标题】:Page scrolls to top on every input blur每次输入模糊时页面滚动到顶部
【发布时间】:2019-04-02 05:58:21
【问题描述】:

我正在使用Exponative-basereact-native 中开发一个简单的应用程序。我偶然发现了一个问题,我在任何文档中都找不到任何信息。

当我模糊任何文本输入、文本区域等时,页面总是快速滚动到顶部。只在 iOS 上发生,在 Android 上没有这样的问题。

如果在我真的知道我做错了什么之前有人问过这个问题。

我正在使用以下软件包:

"react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz",
"react": "16.5.0",
"expo": "32.0.0",
"native-base": "^2.12.0"

我的应用程序中的每个页面都包含以下组件:

import React from "react";
import { StyleSheet } from "react-native";
import { Container, Content } from "native-base";

const SceneWrapper = ({ Layout, bigTopPadding, ...props }) => {
  return (
    <Container style={styles.container} >
      <Content style={styles.content} keyboardDismissMode="interactive">
        <Layout {...props} />
      </Content>
    </Container>
  );
};

const styles = StyleSheet.create({
  container: {
    backgroundColor: "white",
    flex: 1,
    alignItems: "flex-start",
    justifyContent: "flex-start"
  },
  content: {
    padding: 20,
    flex: 1,
    width: "100%",
    height: "100%",
  }
});

我几乎 100% 确定 &lt;Content&gt; 组件在这里有问题,但我不明白为什么以及应该更改什么来防止这种情况。我所知道的是keyboardDismissMode 并没有导致这个问题,因为它发生在我添加这个道具之前。

【问题讨论】:

    标签: javascript reactjs react-native expo native-base


    【解决方案1】:

    对于任何有同样问题的人,我设法找到了解决方案。

    我通过将enableResetScrollToCoords={false} 属性添加到&lt;Content&gt; 来解决它。

    【讨论】:

    • 节省了数小时的工作量。
    【解决方案2】:

    您可以创建一个函数 l,它将在任何输入模糊时调用。在函数内部调用这个方法window.scrollTo(0,0)

    【讨论】:

    • 这是原生反应。没有窗户。此外,滚动到(0, 0) 正是我想要阻止的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    相关资源
    最近更新 更多