GooglePlacesAutocomplete 不会点击结果

问题描述 投票:0回答:1

我正在尝试在使用expo(sdk 49)的react-native项目上使用react-native-google-places-autocomplete库及其组件GooglePlacesAutocomplete。

这在普通屏幕中正常工作,问题是当我在以 ScrollView 作为父级的屏幕中使用它时...... 这是因为为了避免错误完整的错误是:VirtualizedLists 永远不应该嵌套在具有相同方向的普通 ScrollView 中,因为它可能会破坏窗口和其他功能 - 使用另一个 VirtualizedList 支持的容器代替,我被迫嵌入水平类型的附加 ScrollView 中的组件,还使用相对位置和高 zIndex 来确保该组件的结果始终与其他组件“重叠”。 所以我在屏幕上需要的地方使用的最后一个组件是:

    <ScrollView
      horizontal={true}
      // nestedScrollEnabled={true}
      // keyboardShouldPersistTaps='handled'
      contentContainerStyle={{
        position: 'relative',
        elevation: 100,
        zIndex: 100,
        flex: 1,
        width: '100%',
      }}
    >
      <GooglePlacesAutocomplete
        placeholder={placeholder}
        fetchDetails
        onPress={(data, details) => handlePress(data, details!)}
        query={{
          key: process.env.EXPO_PUBLIC_MAPS_KEY,
          language: 'en',
        }}
        // keepResultsAfterBlur
      />
    </ScrollView>

现在的问题是,一旦我单击结果,它(可能)会被视为主滚动视图上的点击,因此 GooglePlacesAutocomplete 不仅不会获取我单击的结果,还会关闭结果栏。

我几乎确定这个问题,因为如果我不单击,而是先手动关闭模拟器键盘,这些位置不会消失,如果我单击一个,它会被正确选择。

我发现的另一个解决方法是使用“keepResultsAfterBlur”属性,但是,顾名思义,即使选择了位置,它也会保留结果,因此不切实际。 怎么才能永久解决呢?

reactjs react-native expo scrollview react-google-places-autocomplete
1个回答
0
投票

我也面临着同样的问题。如果您解决了这个问题,请分享解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.