我在我的react-native cli项目中添加了react-native-google-places-autocomplete with yarn,但是它不起作用。以下是我目前面临的问题。
1.地点下拉列表未显示在IOS上,但是输入文本字段允许我输入地点名称,但预测列表未显示
- onPress处理程序在IOS和Android上根本不会触发
1.来自react-native-google-places-autocomplete的文本输入不允许我在ANDROID上输入任何内容。它就像一直被禁用(尽管焦点设置为true)
注意:所有的谷歌位置api都已启用,谷歌Mapapi,地点api和地理编码api都已启用,并提供了一个有效的api密钥。
我尝试了所有可能的解决方案,包括以下内容:
1.设置zIndex:1000为高值,以避免隐藏在其他视图后面
1.尝试创建新的RN应用程序,仅添加此组件以保持项目清洁
1.重新生成API,甚至使用另一个与REACT NATIVE的早期版本一起工作的API。
Xcode和Android Studio上的日志均未显示任何内容,代码片段如下:
<View style = {[{zIndex: 2, backgroundColor: 'white'}]}>
<GooglePlacesAutocomplete
ref = {ref => setSearchTextRef(ref)}
placeholder='Search for gym'
styles={{
container: {backgroundColor: 'transparent'},
textInputContainer: styles.viewStyle,
textInput: styles.textInputStyle,
}}
keyboardShouldPersistTaps = {'handled'}
listUnderlayColor = {'transparent'}
textInputProps = {{
onFocus: () => focusInput(),
onBlur: () => blurInput(),
onChangeText: (text) => onChange(text)
}}
minLength={1} // minimum length of text to search
returnKeyType={'search'}
listViewDisplayed={'auto'} // true/false/undefined
fetchDetails={true}
renderDescription={row => row.description} // custom description render
onPress={(data, details = null) => {
let coordinates = details.geometry.location;
sendCoordinates(coordinates, {data, details});
}}
getDefaultValue={() => ''}
query={{
key: googleAPIKey,
language: 'en', // language of the results
// types: '(cities)' // default: 'geocode'
}}
nearbyPlacesAPI='GooglePlacesSearch' // Which API to use: GoogleReverseGeocoding or GooglePlacesSearch
GooglePlacesSearchQuery={{
rankby: 'distance',
types: 'gym'
}}
filterReverseGeocodingByTypes={['locality', 'administrative_area_level_3']}
debounce={200}
/>
</View>
先谢谢你
4条答案
按热度按时间8fsztsew1#
你的代码加上一些注解对我来说很有效。注解掉了你的函数调用,因为那些没有提供。
mbskvtky2#
这种情况发生在我身上,因为我在ScrollView中有这个控件。在ScrollView上使用keyboardShouldPersistTaps=“handled”似乎可以解决这个问题
azpvetkf3#
我也有同样的问题。
在我尝试了所有的解决方案之后,没有任何效果。即使我已经完成了所有的事情,甚至是谷歌API上的计费配置,位置下拉列表也没有显示。
所以在开始的时候,我用 "Yarn添加React-本地-谷歌-地点-自动完成" 重新安装了谷歌地点自动完成,如果你有npm,那么就用 "npm iReact-本地-谷歌-地点-自动完成"。
然后,我从一开始就添加了这两个导入:
从"React-本地-谷歌-地点-自动完成"导入{谷歌地点自动完成};从"@env "文件中导入{GOOGLE_MAPS_APIKEY};
然后我在代码中重写了GooglePlacesAutocomplete & GOOGLE_MAPS_APIKEY:
所以他们定义了 "新导入",并在我的项目文件上执行命令 "Yarn安装",即使它已经是最新的。
最后,我使用命令 "expo r-c" 重新启动我的项目,清除缓存。
希望,这对未来的人有帮助!
fkaflof64#
这个软件包已经不再维护了,根本就不工作。我在iOS上用expo试过了。我甚至没有得到一个结果列表。我发现了另一个软件包,它工作起来很有魅力:
https://www.npmjs.com/package/react-native-places-input