2017-03-22 4 views
1

나는 (간결성을 위해 편집) 내가 지금과 같은 별도의 파일에 저장 한 모달 있습니다통화 부모 함수는 반응 기본

const DelegateModal = ({ selected, selectedFunc, visible, press}) => { 

return (
    <View style={{ marginTop: 50, marginBottom: 50 }}> 
     <Modal 
      animationType={'slide'} 
      visible={visible} 
      onRequestClose={() => { }} 
     > 
      <View style={{ marginTop: 60 }}> 
       <View> 
        <Text>Please select an expiry period for the delegate token</Text> 
        <Picker 
         selectedValue={selected} 
         onValueChange={pickerValue => { 
          selectedFunc(pickerValue); 
         } 
         } 

내가 그 부모에서 호출을 (부모의) changepickerValue()와

renderDelegateDeliveryModal() { 
     if (this.state.delegateModalVisible === true) { 
      return (<DelegateModal 
       press={() => this.setDelegateModalVisible(false)} 
       visible={this.state.setDelegateModalVisible} 
       selected={this.state.delegatePicker} 
       selectedFunc={() => this.changePickerValue()} 
      />); 
     } 
    } 

존재 : 아무리 내가 뭘

changePickerValue(pickerValue){ 
    console.log(pickerValue); 
} 

, C에서 그러나, CONSOLE.LOG hangePickerValue는 항상 정의되지 않습니다. onValueChange에 console.log를 넣으면 pickerValue가 설정되고 부모에게 전달되지 않습니다.

내가 잘못 가고 있다는 제안이 있으십니까?

감사

답변

1

당신은 selectedFun 콜백에 pickerValue을 읽을 누락되었습니다. 그게이었다 아 당신은

renderDelegateDeliveryModal() { 
     if (this.state.delegateModalVisible === true) { 
      return (<DelegateModal 
       press={() => this.setDelegateModalVisible(false)} 
       visible={this.state.setDelegateModalVisible} 
       selected={this.state.delegatePicker} 
       selectedFunc={(pickerValue) => this.changePickerValue(pickerValue)} 
      />); 
     } 
    } 

또는

renderDelegateDeliveryModal() { 
     if (this.state.delegateModalVisible === true) { 
      return (<DelegateModal 
       press={() => this.setDelegateModalVisible(false)} 
       visible={this.state.setDelegateModalVisible} 
       selected={this.state.delegatePicker} 
       selectedFunc={this.changePickerValue} 
      />); 
     } 
    } 
+0

에 의해 중 하나를 해결할 수 있습니다. 정말 고마워 :) – Jingo