清空通过RactJS / Axios填充的表(this.props)

时间:2017-08-31 08:30:05

标签: javascript reactjs axios

我通过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 Uncaught(在promise中)TypeError:无法执行   'Node'上的'removeChild':参数1不是'Node'类型。       在removeChild

如何告诉reactJS清空表格或至少告诉它已经空了?

或者我认为我必须做什么,重置道具? 似乎没有那么直接改变道具的反应。

1 个答案:

答案 0 :(得分:1)

当用户按下esc键时,所有其他方法removeContacts from actions。返回一些操作类型' REMOVE_CONTACTS'减速器和减速器只是清空状态属性。这将返回空对象到您调用mapStateToProps的容器。这将重新呈现没有数据的表格。