2016-06-17 1 views
6

Я по-прежнему очень новичок в том, чтобы реагировать на родной, и я думаю, что этот вопрос является фундаментальным непониманием Реакта.Можно ли вызвать функцию в родительском компоненте в React Native?

Я пытаюсь открыть модальный пресс от кнопки NavigationBar. И настраиваемый компонент, который я использую («реагировать-родной-модальный выборщик»), и React Native Modal используют дочерние компоненты для запуска события. Я не могу понять, как открыть модальную форму из пресса правой опоры.

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

Я пытаюсь определить, если я могу назвать открытым(), функцию компонента ModalPicker от «RightButton» пропеллера компоненты Панели навигации.

У компонента для ModalPicker есть функция, открытая и работающая, когда я делаю TouchableHighlight для ребенка, но как мне вызвать функцию из реквизита дочернего компонента?

Это основной компонент приложения.

ответ

0

Вы можете использовать ref='picker' для родительского компонента и обращаться к нему по 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>