Reactjs 应用程序加载时,将屏幕定位在平面列表中的最后一项上

Reactjs 应用程序加载时,将屏幕定位在平面列表中的最后一项上,reactjs,react-native,Reactjs,React Native,我目前正在React Native中构建一个聊天应用程序,并试图在加载messagelist时将屏幕定位到最后一条消息上。这个视图构建时使用的组件是FlatList,我知道它为我们提供了即时的scrollToIndex和ScrollToEnd功能,但在componentDidMount内部调用它时,这似乎不能很好地工作。除此之外,滚动功能似乎是让它正常工作的另一个障碍 我还尝试使用initialScrollIndex属性,并将最后一个索引作为属性传递。实际上,它似乎在一瞬间起作用,但屏幕会快速返

我目前正在React Native中构建一个聊天应用程序,并试图在加载messagelist时将屏幕定位到最后一条消息上。这个视图构建时使用的组件是FlatList,我知道它为我们提供了即时的scrollToIndex和ScrollToEnd功能,但在componentDidMount内部调用它时,这似乎不能很好地工作。除此之外,滚动功能似乎是让它正常工作的另一个障碍

我还尝试使用initialScrollIndex属性,并将最后一个索引作为属性传递。实际上,它似乎在一瞬间起作用,但屏幕会快速返回到第一个索引。我不知道这是为什么。下面是我的代码:

  <ScreenWrapper>
    <FlatList
      style={{
        width: WIDTH,
        marginLeft: -20,
      }}
      data={messages}
      initialScrollIndex={messages.length - 1}
      renderItem={this.renderItem}
      keyExtractor={item => item.id}
      getItemLayout={this.itemLayout}
    />
  </ScreenWrapper>

项目id}
getItemLayout={this.itemLayout}
/>
  • 使用flatlist scrollToIndex函数。在componentDidMount中使用ref调用该函数

是一个聊天应用程序的伟大,应该有什么你正在寻找