【问题标题】:Is there a way to externally reset a react component to its original state有没有办法从外部将反应组件重置为其原始状态
【发布时间】:2017-12-28 05:51:45
【问题描述】:

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

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

class wrapper extends React.component{

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

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

我想知道是否有更直接的方法可以做到这一点?

【问题讨论】:

    标签: reactjs


    【解决方案1】:

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

    调用reset清除当前表上的所有状态。

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

    【讨论】:

      【解决方案2】:

      为了给出更一般的答案,

      React 没有在外部重置组件的通用方法,如果有必要,组件应该提供它。父组件与子组件通信有两种方式,通过props,或者不频繁,使用ref直接调用子方法。重置是使用第二种方式。

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

      【讨论】:

        猜你喜欢
        • 2021-05-20
        • 2011-12-11
        • 1970-01-01
        • 1970-01-01
        • 2023-03-20
        • 2022-01-09
        • 2019-09-16
        • 2020-09-25
        • 2020-04-15
        相关资源
        最近更新 更多