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

时间:2017-09-15 12:04:37

标签: react-native picker native-base

我使用React Native和NativeBase,并希望使我的Picker的标签比一个纯文本字符串更复杂。

但是,甚至可以将元素作为标签传递,例如将多个子元素包装在单个顶级元素中吗?

或者Pickers只支持纯文本作为标签吗?

根据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;
  });
}

1 个答案:

答案 0 :(得分:0)

是的!这是可能的,它可能看起来不是很好&#34;对&#34;用于React / JSX代码。只需创建所需的元素并将它们分配到标签字段:

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;
  });
}