我通过Axios-> Reducer提取数据,然后用React-Redux(@connect)将其包装并分发到props中:

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未捕获(承诺)TypeError:执行失败
  “节点”上的“ removeChild”:参数1的类型不是“节点”。
      在removeChild


我怎样才能告诉reactJS清空表或至少告诉它已经是空的?

还是我认为我必须做的是重置道具?
改变道具的反应似乎并不那么直接。

最佳答案

用户按下esc键时,所有其他方法都将从动作中删除联系人。返回一些动作类型'REMOVE_CONTACTS'到化简器,在化简器中只清空state属性。这会将空对象返回到您要调用mapStateToProps的容器。这将重新呈现没有数据的表。

关于javascript - 清空通过RactJS/Axios(this.props)填充的表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45976808/

10-09 13:51