我通过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清空表格或至少告诉它已经空了?
或者我认为我必须做什么,重置道具? 似乎没有那么直接改变道具的反应。
答案 0 :(得分:1)
当用户按下esc键时,所有其他方法removeContacts from actions。返回一些操作类型' REMOVE_CONTACTS'减速器和减速器只是清空状态属性。这将返回空对象到您调用mapStateToProps的容器。这将重新呈现没有数据的表格。