【问题标题】:How to update the filter count and table results based on external event/external component如何根据外部事件/外部组件更新过滤器计数和表格结果
【发布时间】:2019-07-17 02:42:46
【问题描述】:

我正在使用包含一些过滤器(多列表)的反应搜索构建仪表板,例如国家、状态等。我有一个表格,其中一些行在反应列表中呈现。

我有一个工具栏,我用它来更改桌子上的特定属性。例如,如果我需要将行的状态从挂起更改为挂起(此工具栏不是响应式搜索组件)。 根据状态更改调用的反馈,我如何重新渲染 reactiveBase 组件以更新计数并更新行以反映更新后的状态。

我尝试过的几个选项是 1)在状态更新发生时将MultiList过滤器值设置为随机值,并在状态更新完成时返回实际值以触发重新渲染。但这不会更新过滤器的计数。并且表格行的状态也不会持续更新。

2) 重新加载网页(这可行,但希望将其保存为最后的手段)

//反应js

<MultiList
   componentId="stateFilter"
   dataField="state"
   value={this.state.stateValue}
   onChange ={this.onChange}
   ...
 />

shouldComponentUpdate(nextProps, nextState) {
    if(this.props.isStateSaving && !nextProps.isStateSaving) {
      this.setState({ stateValue : [] });
    } else {
      this.setState({ stateValue : ['All States'] });
    }
    return true;
  }

预期结果是保存状态时,过滤器和表行的计数应该更新以反映实际状态。

【问题讨论】:

    标签: reactjs elasticsearch reactivesearch


    【解决方案1】:

    如果您想根据过滤器的值更新结果,您可以使用react 属性,它会根据react 属性中的值更新结果。为了更好地理解这个道具,你可以阅读文档here。如果这不是您想要的,最好提供 CodeSandbox 或 CodePen 链接。

    希望对您有所帮助!

    【讨论】:

    • 感谢 Yash 的回复。我不想根据响应式搜索(组件)过滤器进行更新。有一个外部工具栏(不是响应式搜索组件)可以执行一些数据操作,例如更改当前状态或更改表中选定记录的当前分配用户。更新记录后,我想强制重新渲染以更新过滤器的计数和表结果。是否可以使用 react prop 引用非 reactiveSearch 组件?我可以创建一个 CodePen 并发布它。
    • 拥有 CodePen 或 CodeSandbox 链接会很棒。您不能将 react 属性与非 ReactiveSearch 组件一起使用。
    猜你喜欢
    • 2016-09-05
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    • 2020-02-20
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多