我目前正在使用我通过npm安装的一些复杂的有状态React组件 . 例如,react-bootstrap-table组件 . 它通过道具接受数据 . 但它保留了许多自己的状态,例如,当前选择了哪一行 . 我正在添加一个按钮,点击后我想清除所有选中的行信息 . 无法访问任何可以执行此操作的API,我想知道是否可以完全重置表组件 .
现在我使用一个基于标志呈现表的包装器组件 . 看起来像:
class wrapper extends React.component{
render(){
if(this.props.flag==true) return <React-Table />;
else return null;
}
}
现在通过切换标志,我可以强制重新呈现具有原始状态的表组件 .
我想知道是否有更简单的方法来做到这一点?
2 回答
搜索
react-boostrap-table
API后,它找到了一个方法reset
(参见docs):为了给出更一般的答案,
React没有一种在外部重置组件的通用方法,组件应该在必要时提供它 . 父组件通过道具或不经常使用ref来直接调用子方法,有两种方式可以与子组件进行通信 . 重置是使用第二种方式 .
对于react-bootstrap-table,可以调用reset()和cleanSelected()方法 . How to call child component method.