2016-06-17 10 views
6

Nadal jestem bardzo nowy, aby React Native, i myślę, że to pytanie jest podstawowym niezrozumieniem React.Czy można wywołać funkcję w składniku rodzica w React Native?

Próbuję otworzyć modal z naciśnięcia przycisku NavigationBar. Zarówno niestandardowy komponent, którego używam ("reaguje-rodzimy-modalny-picker"), jak i React Native Modal, wykorzystują komponenty potomne do wyzwolenia zdarzenia. Nie mogę wymyślić, jak otworzyć modal od naciśnięcia prawego podpory.

<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> 

Próbuję ustalić, czy mogę zadzwonić open(), funkcję składnika ModalPicker z „rightButton” prop składnika NavigationBar.

Komponent dla ModalPicker ma funkcję otwierania i działa, gdy sprawię, że TouchableHighlight dziecko, ale jak mogę wywołać funkcję z wewnątrz rekwizyty elementu potomnego?

To jest w głównym elemencie aplikacji.

Odpowiedz

0

Można użyć ref='picker' dla komponentu nadrzędnego i odnoszą się do niego przez 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>