首页 文章

有没有办法将反应组件外部重置为其原始状态

提问于
浏览
1

我目前正在使用我通过npm安装的一些复杂的有状态React组件 . 例如,react-bootstrap-table组件 . 它通过道具接受数据 . 但它保留了许多自己的状态,例如,当前选择了哪一行 . 我正在添加一个按钮,点击后我想清除所有选中的行信息 . 无法访问任何可以执行此操作的API,我想知道是否可以完全重置表组件 .

现在我使用一个基于标志呈现表的包装器组件 . 看起来像:

class wrapper extends React.component{

  render(){
    if(this.props.flag==true) return <React-Table />;
    else return null;
      }
}

现在通过切换标志,我可以强制重新呈现具有原始状态的表组件 .

我想知道是否有更简单的方法来做到这一点?

2 回答

  • 1

    搜索 react-boostrap-table API后,它找到了一个方法 reset (参见docs):

    调用重置以清除当前表中的所有状态 .

    this.refs.table.reset();  // this.refs.table is a ref for BootstrapTable
    
  • 0

    为了给出更一般的答案,

    React没有一种在外部重置组件的通用方法,组件应该在必要时提供它 . 父组件通过道具或不经常使用ref来直接调用子方法,有两种方式可以与子组件进行通信 . 重置是使用第二种方式 .

    对于react-bootstrap-table,可以调用reset()和cleanSelected()方法 . How to call child component method.

相关问题