2016-06-17 14 views
6

Native React için hala çok yeni ve bu sorunun React'in temel bir yanlış anlaşılma olduğunu düşünüyorum.Birincil bileşende React Native içinde bir işlevi çağırmak mümkün mü?

NavigationBar düğmesinin basımından bir model açmaya çalışıyorum. Kullanıyorum özel bileşen ("tepki-yerel-modal-seçici") ve React Yerel Modal olay tetiklemek için alt bileşenleri kullanın. Modal'ı rightButton prop'ın basınından nasıl açacağımı anlayamıyorum.

<ModalPicker 
    data = {[ 
     {key: '1', label: '1'}, 
     {key: '2', label: '2'}, 
     {key: '3', label: '3'} 
    ]} 
    initValue = 'Select option' 
    selectStyle={{ 
     height: 200 
    }}> 
    <NavigationBar 
     title={{ title: "ModalTest" }} 
     rightButton={{ title: "Open Modal" 
     handler:() => ModalPicker.open() }} 
    /> 
</ModalPicker> 

ben,) (NavigationBar bileşeninin "rightButton" pervane gelen ModalPicker bileşeninin bir işlevi açık çağrı belirlemek için çalışıyorum.

ModalPicker için bileşen bir TouchableHighlight bir çocuk yaptığımda, açmak ve yapmak için bir işlevi vardır, ancak bir alt öğe sahne içinden işlevi nasıl çağırabilirim?

Bu, uygulamanın ana bileşenindedir.

cevap

0

Sen ana bileşeni için ref='picker' kullanabilir ve this.refs.picker

<ModalPicker 
    data = {[ 
     {key: '1', label: '1'}, 
     {key: '2', label: '2'}, 
     {key: '3', label: '3'} 
    ]} 
    ref='picker' 
    initValue = 'Select option' 
    selectStyle={{ 
     height: 200 
    }}> 
    <NavigationBar 
     title={{ title: "ModalTest" }} 
     rightButton={{ title: "Open Modal", 
     handler:() => this.refs.picker.open() }} 
    /> 
</ModalPicker> 
tarafından kendisine başvurabilirsiniz