我使用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;
});
}
答案 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;
});
}