2017-09-15 6 views
0

私はNativeBaseでReact Nativeを使用しています。私のPickerのラベルをテキストの単純な文字列よりも複雑にしたいと考えています。React NativeのPicker Itemのラベルに複数の要素や入れ子要素を使用することはできますか?

しかし、要素をラベルとして渡すこともできます。たとえば、単一の最上位要素にラップされた複数の子要素を渡すことは可能ですか?

ピッカーはプレーンテキストのみをラベルとしてサポートしていますか?


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

私は思っているどんなコンポーネントでも構いません。なぜあなたは試して見ないのですか? – bennygenel

+0

@bennygenel:私は構文がどうなるか分からなかった。開いたタグから始めましょうか?内部引用符?カッコ内、中括弧、二重中括弧? ( - :私はたくさんの組み合わせを試してみようと思う... – hippietrail

+0

[docs for Picker](http://docs.nativebase.io/Components.html#picker-def-headref)を見るとそれは複数の子コンポーネントを持っています。独自のItemコンポーネントを作成して、Nativebaseの代わりにデフォルトコンポーネントを追加することができます。 – bennygenel

答えて

0

はい! 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; 
    }); 
} 
関連する問題