# gt-next: General Translation Next.js SDK: useRegionSelector
URL: https://generaltranslation.com/zh/docs/next/api/helpers/use-region-selector.mdx
---
title: useRegionSelector
description: useRegionSelector Hook 的 API 参考
---
{/* 自动生成:请勿直接编辑。请改为编辑 content/docs-templates/ 中的模板。 */}
## 概述
`useRegionSelector` hook 提供了实现自定义区域选择器 UI 组件所需的数据和处理函数。它会返回当前区域、可用区域列表、区域元数据,以及用于更新区域或区域设置的函数。
`useRegionSelector` 是一个客户端 hook,*只能在客户端组件中使用*。
请确保你的应用已由 [``](/docs/next/api/components/gtprovider) 包裹。
## 参考文档
### 参数
一个可选的配置对象:
| 参数 | 类型 | 默认值 | 描述 |
| ------------------------------- | ---------- | ------ | ------------------------------------------------------------------------------------------ |
| `regions` | `string[]` | — | 可选的 ISO 3166 区域代码数组,用于指定要显示的区域。如果未提供,则会根据支持的 locales 推断区域。 |
| `customMapping` | `object` | — | 可选映射,用于覆盖区域显示名称、表情符号或关联的 locales。值可以是字符串 (显示名称) ,也可以是包含 `name`、`emoji` 和/或 `locale` 属性的对象。 |
| `prioritizeCurrentLocaleRegion` | `boolean` | `true` | 如果为 true,则会在列表中优先显示与当前区域设置对应的区域。 |
| `sortRegionsAlphabetically` | `boolean` | `true` | 如果为 true,则区域会按显示名称的字母顺序排列。 |
### 返回值
一个对象,包含:
| 字段 | 类型 | 说明 |
| ------------ | --------------------------------------- | ----------------------------------------------------- |
| `region` | `string \| undefined` | 当前选中的区域代码。 |
| `setRegion` | `(region: string \| undefined) => void` | 用于更新所选区域的函数。 |
| `regions` | `string[]` | 可用区域代码数组。 |
| `regionData` | `Map` | 将区域代码映射到其显示数据 (`code`、`name`、`emoji`、`locale`) 的 Map。 |
| `locale` | `string` | 当前区域设置。 |
| `setLocale` | `(locale: string) => void` | 用于更新区域设置的函数。 |
***
## 示例
### 创建自定义区域选择器
```jsx title="CustomRegionSelector.jsx" copy
'use client';
import { useRegionSelector } from 'gt-next';
export default function CustomRegionSelector() {
const { region, setRegion, regions, regionData } = useRegionSelector({ // [!code highlight]
customMapping: { US: { name: "United States", emoji: "🇺🇸" } }, // [!code highlight]
}); // [!code highlight]
return (
);
}
```
***
## 说明
* 如果未提供 `regions`,则会根据你在 [`gt.config.json`](/docs/next/api/config/gt-config-json) 中配置的受支持区域设置推断可用区域。
* 如需使用现成的区域选择器,请使用 [``](/docs/next/api/components/region-selector) 组件。
## 后续步骤
* 如需可直接使用的下拉组件,请参阅 [``](/docs/next/api/components/region-selector)。
* 如需读取当前区域,请参阅 [`useRegion`](/docs/next/api/helpers/use-region)。
* 如需使用对应的区域设置版本,请参阅 [`useLocaleSelector`](/docs/next/api/helpers/use-locale-selector)。