2017-12-05 18 views
0

親コンポーネントの削除関数を処理する子コンポーネントのモーダルがあります。子供はそれが最も論理的な場所であるように、モーダルの状態(オープンまたはクローズド)を保持しています。 removeItemコードが実行された後React:親から子コンポーネントのモーダルを閉じる

removeItem() { 
    console.log('clicked'); 
    }; 

... 

<DeleteButton deleterecord={()=>this.removeItem(data.row._original._id)}/> 

子供

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

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


render() { 

return(
    <div> 
    <Button 
    bsStyle="primary" 
    bsSize="small" 
    onClick={this.open.bind(this)} 
    > 
    Delete 
    </Button> 

    <Modal 
    show={this.state.showModal} 
    onHide={this.close.bind(this)} 
    bsSize="small" 
    > 
    ... 

は、どのように私は親からモーダルを閉じる必要があります。

+0

あなたは、本質的に子コンポーネントの状態を更新し、親から子コンポーネント内の関数を呼び出すことができます。これをチェックしてくださいhttps://stackoverflow.com/questions/40235420/call-child-method-from-parent-in-react/40235756#40235756 –

+0

参照を使用して子の終了関数を呼び出すように私のソリューションを編集しました。それが機能するかどうか確認してください。 – Rodius

答えて

3

refを使用して子クローズ関数を呼び出すことはできますか?

​​3210

子供

... 

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

ありがとうございますが、コンポーネントも親にあります。私は子供のコードのいくつかを含めるように私の質問を修正します –

+0

これは "this.child"実際にする必要がありますありがとう?子コンポーネントの名前? –

+0

"child"はrefの名前です。あなたはどんな名前でもあなたのことを割り当てることができます=)。コンポーネントを簡単に識別できるようなものを使用してください。子コンポーネントの別名と考えることができます。 – Rodius

関連する問題