2015-12-30 4 views
3

Я пытаюсь создать элемент MessageBox (Modal Box), который получает входные данные, чтобы сформировать Modal Box. Метод close в MessageBox как-то не вызывает parent close и inturn получить Модал исчезнуть, любая помощь пожалуйста ??Реагировать дочерний элемент, вызывающий родительский элемент, по значению

экспорт класса по умолчанию MessageBox расширяет компонент расширяет {

constructor(props) { 
    super(props); 
    this.close = this.close.bind(this); 
} 

close(){ 
    this.props.callbackParent; 
} 

render(){ 
    return (
     <div> 
      <Modal show={this.props.visibility} onHide={this.close}> 
       <ModalHeader closeButton> 
        <ModalTitle>{this.props.msgHeader}</ModalTitle> 
       </ModalHeader> 
       <ModalBody>{this.props.msgBody}</ModalBody> 
      </Modal> 
     </div> 
    ); 
} 

}

экспорт класс по умолчанию продукта компонент {

constructor(props) { 
    super(props); 
    this._initState = { 
     showModal: false 
    } 
    this.state = this._initState; 
    this.open = this.open.bind(this); 
    this.close = this.close.bind(this); 
} 

open(){ 
    this.setState(
     { showModal: true } 
    ); 
} 

close(){ 
    this.setState(
     { showModal: false } 
    ); 
} 

render(){ 
    return (
     <div> 
      <Button bsStyle="primary" bsSize="large" onClick={this.open}> 
       Go!!! 
      </Button> 
      <MessageBox visibility={this.state.showModal} msgHeader='Header goes here ...' msgBody='Overlay message body goes here ..' callbackParent={this.close}/> 
     </div> 
    ); 
} 

};

+0

Вы упускаете в скобки 'close' функции MessageBox .. В вам нужно' this.props.callbackParent() 'на самом деле назвать это – azium

ответ

1

Кажется, что вы не указали скобки в методе закрытия MessageBox.

this.props.callbackParent; 

должен быть

this.props.callbackParent(); 

(ТНХ к @azium) для ответа.

+0

Цените свое время, чтобы ответить, спасибо! –

0

Я получил это работает под этим

export default class MessageBox extends Component{ 

constructor(props) { 
    super(props); 
} 

render(){ 
    return (
     <div> 
      <Modal show={this.props.visibility} onHide={this.props.callbackParent}> 
       <ModalHeader closeButton> 
        <ModalTitle>{this.props.msgHeader}</ModalTitle> 
       </ModalHeader> 
       <ModalBody>{this.props.msgBody}</ModalBody> 
       <ModalFooter> 
        <Button onClick={this.props.callbackParent}>Close</Button> 
       </ModalFooter> 
      </Modal> 
     </div> 
    ); 
} 

}

Смежные вопросы