【问题标题】:How to load Google Places API in React Native?如何在 React Native 中加载 Google Places API?
【发布时间】:2018-06-01 07:52:41
【问题描述】:

我正在尝试在本机反应中使用 Google Places API。我首先尝试使用fetch 直接发出请求,但我刚刚看到您必须使用Google 提供的现有类/对象,例如PlacesService。搜索包含 API 对象的 React Native 库只会显示一些具有自动完成功能的库,而其他功能不多。

Places API 文档说要使用以下网址加载库:<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"></script>

这在常规 Web 开发中对我来说很简单,但在 react native 中则不然。在 React Native 中加载这样的库的标准过程是什么?

现在我已经将上面链接中的 JS 内容复制并粘贴到我的 React Native 项目中的一个文件中。但是,我什至不知道如何导出它,因为我真的不知道对象/函数的名称是什么。谷歌 ?谷歌地图?

现在我在做:

export default google.maps

也试过了

export default google

但是这些都抛出这个错误:

cannot read property 'createElement' of undefined

这是我的第一个 React Native 项目,如果这是一个基本问题,我很抱歉。

感谢您的帮助。

【问题讨论】:

    标签: react-native


    【解决方案1】:

    but I just saw that you have to use the existing classes/objects provided by Google

    我不确定你的意思。 Places api 可以通过 fetch/api 请求完成。看看react-native-google-places 是如何做到的https://github.com/FaridSafi/react-native-google-places-autocomplete/blob/master/GooglePlacesAutocomplete.js#L227 他们使用new XMLHttpRequest();,但fetch() 也可以。它是 web api,我认为您不需要运行任何外部 javascript/加载任何外部 js 文件。

    【讨论】:

    • 同意,places只是一个http api,这里不需要第三方包
    • 当我使用 fetch 时,我得到了 200 ok 响应,但调用 .results 是未定义的,我用 google-places 标签问了一个关于它的问题,评论者说使用 PlacesService。我想我会再试一次。
    • @srlrs20020 你能链接那个问题吗?我在你的历史中找不到它。也许您遗漏了什么,将响应转换为 json?
    • @TravisWhite 您必须将响应转换为 JSON?我指定了json作为请求类型,还需要转换吗?我能够访问响应中的键,但“结果”不是其中之一。可用的键是:type、status、ok、statusText、headers、url、_bodyInit、_bodyText。 bodyInit 和 bodyText 中有一个结果对象,但我无法访问它。是我应该转换的吗?对不起,我应该提到我删除了这个问题。
    • 是的,let res = await fetch(${API_URL}${stuff}); 然后res = await res.json();
    猜你喜欢
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    相关资源
    最近更新 更多