我可以在 React Native 的 Picker Item 的 Label 中使用多个或嵌套元素吗?

Can I use multiple or nested elements in the Label of a Picker Item in React Native?

我正在将 React Native 与 NativeBase 结合使用,我想让我的 Picker 的标签比只有一个纯文本字符串更复杂。

但是是否可以将元素作为标签传递,比如包含在单个顶级元素中的多个子元素?

或者选择器是否只支持纯文本作为标签?


应 bennygenel 的要求,这是我尝试过的版本:

export default class ThingPicker extends React.Component {

  render() {
    const {
      initialThing,
      things,
      onThingChanged,
    } = this.props;

    const orderedThings = things.sort();

    return (
      <Picker
        selectedValue={initialThing}
        onValueChange={onThingChanged}>
        {buildThingItems(orderedThings)}
      </Picker>
    );
  }
}

function buildThingItems(orderedThings) {
  let items = orderedThings.map(th => {
    const it = th === "BMD" ? (<Text key={th} label={"foo"} value={"bar"}}>Hello</Text>)
    : (<Picker.Item key={th} label={th} value={th} />);

    return it;
  });
}

是的!有可能,对于 React/JSX 代码,它可能看起来不太 "right"。只需创建您需要的元素并将它们分配给标签字段:

function buildThingItems(orderedThings) {
  let items = orderedThings.map(th => {
    const it = (<Picker.Item
      key={th}
      label={currency === "BMD" ? (<Text>Hello</Text>) : th}
      value={th} />);

    return it;
  });
}