2017-07-22 14 views
1

私は現在、npmを通してインストールした複雑なステートフルな反応成分を扱っています。たとえば、反応ブートストラップテーブルコンポーネント。それはその小道具を通してデータを受け入れる。しかし、それは、現在選択されている行など、独自の状態をたくさん保持します。私はボタンを追加しています。クリックすると、選択した行情報をすべてクリアします。それを行うことができるAPIにアクセスできないので、テーブルコンポーネントを完全にリセットできるかどうかは疑問です。反応成分を元の状態に外部からリセットする方法はありますか?

今は、フラグに基づいてテーブルをレンダリングするラッパーコンポーネントを使用します。それは次のようになります:

class wrapper extends React.component{ 

    render(){ 
    if(this.props.flag==true) return <React-Table />; 
    else return null; 
     } 
} 

フラグをトグルすることで、元の状態のテーブルコンポーネントを強制的に再描画できます。

もっと簡単な方法があるのでしょうか?

答えて

1

react-boostrap-table APIを検索した後、それは方法resetdocsを参照)が見つかりました:現在、テーブルの上にすべてのステータスをきれいにリセット

コール。より一般的な答えを与えることを

this.refs.table.reset(); // this.refs.table is a ref for BootstrapTable 
0

が反応はそれが必要だ場合、コンポーネントは、それを提供する必要があり、外部コンポーネントをリセットする一般的な方法がありません。親コンポーネントが子コンポーネントと、小道を通じて、または頻繁には子コンポーネントと直接通信するためにrefを使用して通信する方法は2つあります。リセットは2番目の方法を使用しています。

react-bootstrap-tableには、reset()メソッドとcleanSelected()メソッドがあります。 How to call child component method.

関連する問題