Branch
<Branch> 组件 API 参考
概览
<Branch> 组件可在翻译中添加条件逻辑。
const status = 'active';
<Branch branch={status}
    active={<p>用户处于活跃状态。</p>}
    inactive={<p>用户处于非活跃状态。</p>}
/>将一个值传递给 branch 参数后,它会根据你提供的键匹配到对应的输出值。
参考资料
Props
Prop
Type
[key]: string 语法表示可以用作分支的任意键。
例如,可以添加 active 和 inactive 等分支作为参数。
| Prop | Description | 
|---|---|
| branch | 要渲染的分支名称。 | 
| children | 当未找到匹配分支时要渲染的备用内容。 | 
| [key]: string | 表示针对给定分支值的候选内容的分支。每个键对应一个分支,其值为要渲染的内容。 | 
返回
包含与指定分支对应内容或回退内容的 JSX.Element。
抛出
如果未提供 branch 属性或其值无效,将抛出 Error。
示例
基本用法
<Branch> 需要针对 branch 属性的每个可能取值输出不同结果。
在此示例中,使用 user.hairColor 的值来确定输出。
我们定义了 black、brown 和 blonde 这三个属性,以匹配 user.hairColor 的可能取值。
import { Branch } from 'gt-next';
export default function HairColor({ user }) {
  return (
    <Branch branch={user.hairColor}
      black={<p>他们的头发是黑色的。</p>}
      brown="他们的头发是棕色的。" // (如果你愿意,也可以传递字符串)
      blonde={<p>他们的头发是金色的。</p>}
    />
  );
}回退内容
当没有任何 prop 与传递给 branch 的值匹配时,children 将始终作为回退内容使用。
import { Branch } from 'gt-next';
export default function HairColor({ user }) {
  return (
    <Branch branch={user.hairColor}
      black={<p>他们的头发是黑色的。</p>}
      brown={<p>他们的头发是棕色的。</p>}
      blonde={<p>他们的头发是金色的。</p>}
    >
      <p>他们的头发颜色未知。</p> // [!code highlight]
    </Branch>
  );
}翻译 <Branch>
若要翻译其中内容,只需将其包裹在 <T> 组件中。
import { T, Branch } from 'gt-next';
export default function HairColor({ user }) {
  return (
    <T id="example">
      <Branch branch={user.hairColor}
        black={<p>他们的头发是黑色的。</p>}
        brown={<p>他们的头发是棕色的。</p>}
        blonde={<p>他们的头发是金色的。</p>}
      >
        <p>他们的头发颜色未知。</p>
      </Branch>
    </T> 
  );
}添加变量
如果需要在分支中渲染动态值,请务必将其包裹在 <Currency>、<DateTime>、<Num> 或 <Var> 组件中。
import { Branch, T, Var } from 'gt-next';
export default function HairColor({ user }) {
  return (
    <T id="example">
      <Branch branch={user.hairColor}
        black={<p>他们的头发是黑色的。</p>}
        brown={<p>他们的头发是棕色的。</p>}
        blonde={<p>他们的头发是金色的。</p>}
      >
        <p>未处理的头发颜色:<Var>{user.hairColor}</Var></p>
      </Branch>
    </T>
  );
}注意事项
- 分支的键可以是任意与 branch 属性匹配的字符串值。这种灵活性使得将 <Branch>适配到各类用例变得更加容易。
- 将 <Branch>与其他组件配合使用,例如用于翻译的<T>和用于动态内容的变量组件,以构建丰富且本地化的界面。
后续步骤
- 如需了解更高级的用法和示例,请参阅使用分支组件。
这份指南怎么样?

