# @appandflow/react-native-google-autocomplete 中文文档

规范地址：https://npmcn.com/package/%40appandflow/react-native-google-autocomplete/

版本：2\.2\.0
npm 元数据更新时间：2026-02-16T13:56:56.445Z
中文译文更新时间：2026-11-06T11:15:39.896Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40appandflow/react-native-google-autocomplete
原文对照：https://npmcn.com/package/%40appandflow/react-native-google-autocomplete/?lang=original
项目主页：https://github.com/AppAndFlow/react-native-google-autocomplete#readme
源码仓库：https://github.com/AppAndFlow/react-native-google-autocomplete

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：53 kB，31 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：react \*，react-native \*
- 首次发布：2024-07-11T14:46:51.677Z
- 最新版本发布：2026-02-16T13:56:56.289Z
- 近 30 天下载量：12671（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：11（近 12 个月 3 个）

## 中文简介

帮助您使用 google 设置自动完成的库

## 安装

```sh
npm install @appandflow/react-native-google-autocomplete
```

也可以使用：`pnpm add @appandflow/react-native-google-autocomplete`、`yarn add @appandflow/react-native-google-autocomplete`、`bun add @appandflow/react-native-google-autocomplete`

## README

![google\_autocomplete](https://github.com/user-attachments/assets/b9d85da5-b833-4e40-a6d7-36380e049ba0)

### 关于

App & Flow是一个基于蒙特利尔的React Introduction工程和咨询工作室. 我们与世界顶尖公司合作,并被推荐 [博览](https://expo.dev/consultants)需要帮忙吗? 让我们一起建设. [团队@appandflow.com](mailto:team@appandflow.com)

## 安装

```sh
yarn add @appandflow/react-native-google-autocomplete
```

```sh
npm i @appandflow/react-native-google-autocomplete
```

## 使用量

这个 `useGoogleAutocomplete` 钩子需要两个参数

| 参数 | 说明 |
| --- | --- |
| 键 | [您的谷歌放置了 api 键](https://developers.google.com/maps/documentation/places/web-service/overview) |
| 配置 | 可选配置对象 |

# 配置对象

| 财产 | 说明 |
| --- | --- |
| 弹跳 | 可选 - 默认 300 |
| 退出选项 | 选项 - 解开行为的配置选项. |
| 语言 | 选项 - 默认“ en” |
| 查询类型 | 选项 - 默认地址 - [https://developers.google.com/places/web-service/autocomplete#place types (中文(简体) )](https://developers.google.com/places/web-service/autocomplete#place_types) |
| 分钟 | 选项 - 默认 2 - 这是开始前术语搜索的分钟长度 |
| 组件 | 选项 - 一组您想要限制您结果的地方 |
| 半径 | 可选 - 返回地点结果的距离(米) |
| 号 | 可选 - 纬度。 如果提供,则需要印章 |
| 猪 | 可选 - 经度。 如果提供,则需要拉特 |
| 严格边界 | 可选 -- -- 返回地点仅限于按地点和半径界定的区域. |
| 来源 | 选项 - 源点为 {lat, Ing } 从该点计算到目的地的直线距离( 返回为距离 公尺) |
| 代理用户 | 选项 - 如果您想要在基于 Web 的平台上使用钩子,则需要此选项 。 由于我们不使用Google SDK,除非提供代理Url,否则http调用将因与CORS有关的问题而失败 |
| 页眉 | 可选 - 自定义标题包含在 Google Places API 请求中。 用于通过特定平台的 API 限制, 如 `X-Android-Package`, (中文(简体) ), `X-Android-Cert`,或 `X-Ios-Bundle-Identifier`。 。 。 . |

# 已曝光属性

| 财产 | 说明 |
| --- | --- |
| 清除搜索 | 清除当前搜索 |
| 轮廓 | 布尔,让你知道搜索正在进行 |
| 地点 | 搜索结果阵列 |
| 搜索细节 | 函数可以让您获得更多细节, 有利于您选择结果 |
| 搜索错误 | 搜索过程中可能发生的错误 |
| 术语/设置 | 这个术语是使用的搜索术语,它使用 setTerm |

# 代码示例

这是一个最小函数片段, 它返回 3 个结果用于您的搜索 . 点击结果记录结果的细节.

```ts
  const { locationResults, setTerm, clearSearch, searchDetails, term } =
    useGoogleAutocomplete(API_KEY, {
      language: 'en',
      debounce: 300,
    });

  return (
    <View>
      <TextInput
        value={term}
        onChangeText={setTerm}
      />
      {locationResults.slice(0, 3).map((el, i) => (
        <TouchableOpacity
          key={String(i)}
          onPress={async () => {
            const details = await searchDetails(el.place_id);
            console.log(JSON.stringify(details, null, 2));
          }}
        >
          <Text>{el.structured_formatting.main_text}</Text>
        </TouchableOpacity>
      ))}
    </View>
  );
```

## 结果

`locationResults` 返回以下内容。 Google设定的最大结果是5个通过查询的位置.

```js
export interface GoogleLocationResult {
  description: string;
  id: string;
  matched_substrings: Array<{
    length: number;
    offset: number;
  }>;
  place_id: string;
  reference: string;
  structured_formatting: {
    main_text: string;
    secondary_text: string;
    main_text_matched_substrings: Array<{
      length: number;
    }>;
  };
  terms: Array<{
    offset: number;
    value: string;
  }>;
  types: string[];
  distance_meters?: number; // Present when origin parameter is provided
}
```

当呼叫搜索时,详情如下:

```js
export interface GoogleLocationDetailResult {
  adr_address: string;
  formatted_address: string;
  icon: string;
  id: string;
  name: string;
  place_id: string;
  scope: string;
  reference: string;
  url: string;
  utc_offset: number;
  vicinity: string;
  types: string[];
  geometry: {
    location: {
      lat: number;
      lng: number;
    };
    viewport: {
      [type: string]: {
        lat: number;
        lng: number;
      };
    };
  };
  address_components: Array<{
    long_name: string;
    short_name: string;
    types: string[];
  }>;
}
```

## 键入

如果您需要流量或打字符, 可以导入两种结果键入 .

```js
import {
  GoogleLocationDetailResult,
  GoogleLocationResult,
} from 'react-native-google-autocomplete';
```

## 自定义信头

您可以将自定义信头传递给 Google Places API 请求。 这对 [应用限制](https://developers.google.com/maps/api-security-best-practices#application-restriction) 例如Android应用或iOS捆绑限制.

```ts
// Android
const { locationResults, setTerm } = useGoogleAutocomplete(API_KEY, {
  headers: {
    'X-Android-Package': 'com.example.app',
    'X-Android-Cert': 'your-signing-certificate-fingerprint',
  },
});

// iOS
const { locationResults, setTerm } = useGoogleAutocomplete(API_KEY, {
  headers: {
    'X-Ios-Bundle-Identifier': 'com.example.app',
  },
});
```

## 国家限制

如果您想要限制国家搜索, 您可以将此添加为道具 `components="country:ca"`这里仅举加拿大为例.

## 常见问题

### @appandflow/react-native-google-autocomplete 是什么？

帮助您使用 google 设置自动完成的库

### 如何安装 @appandflow/react-native-google-autocomplete？

在项目目录运行 npm install @appandflow/react-native-google-autocomplete，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\*）、react-native（\*）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @appandflow/react-native-google-autocomplete 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @appandflow/react-native-google-autocomplete 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @appandflow/react-native-google-autocomplete 可以商用吗？

@appandflow/react-native-google-autocomplete 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @appandflow/react-native-google-autocomplete 的下载量有多少？

根据 npm 官方下载统计，@appandflow/react-native-google-autocomplete 在 2026/10/07 – 2026/11/05 这 30 天内被下载 12,671 次，日均约 422 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @appandflow/react-native-google-autocomplete 还在维护吗？

最新版本 2\.2\.0 发布于 2026/02/16（8 个月前）；至今共发布 11 个版本，其中过去 12 个月发布了 3 个；首次发布于 2024/07/11。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

