2017-08-31 8 views
0

はその後反応させ、Reduxの(@connect)でそれをラップし、小道具にそれをディスパッチ:空のテーブル

this.props.dispatch(fetchContacts(this.state.searchParam)); 

そして、ReactJSがテーブルをレンダリングさせます。

ユーザーがESCを押すと、すべてのフィルタをリセットしてテーブルを空にしたいとします。 私はReactJSを初めて使っているので、まだすべてのルールを知っているわけではありませんが、問題を避けるために自分でDOMに触れてはいけないようです。

私の試みは、次のようになります。

let tbody = document.getElementById('contactList').getElementsByTagName('tbody')[0]; 
//Empty table 
while (tbody.firstChild) { 
    tbody.removeChild(tbody.firstChild); 
} 

しかし、私はそのようにそれを行う場合、私は新しいデータセットをロードしようとすると、私は次のエラーが発生します。

test.js:6210 Uncaught (in promise) TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'. at removeChild

にはどうすればreactJSを伝えることができますテーブルを空にするか、少なくともそれが既に空であることを教えてください。

私は何をしなければならないと思うか、小道具をリセットしますか? 反応の小道具を変更するのは簡単ではないようです。

+1

ユーザーがescキーを押したときに、別のメソッドremoveContactsをアクションから呼び出します。いくつかのアクションタイプ 'REMOVE_CONTACTS'をレデューサーに返し、レデューサーでは単に状態プロパティを空にします。これにより、空のオブジェクトがmapStateToPropsを呼び出すコンテナに戻ります。これにより、データなしでテーブルが再レンダリングされます。 – Trinu

+0

うん、それは働いて、それについて考えている可能性があります...ありがとう – Tiega

+0

あなたは歓迎です – Trinu

答えて

1

他のすべてのメソッドremoveユーザーがescキーを押したときのアクションからの連絡先。いくつかのアクションタイプ 'REMOVE_CONTACTS'をレデューサーに返し、レデューサーでは単に状態プロパティを空にします。これにより、空のオブジェクトがmapStateToPropsを呼び出すコンテナに戻ります。これにより、データなしでテーブルが再レンダリングされます。

関連する問題