0

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

我有一个工具栏,用于更改表格上的特定属性。例如,如果我需要将行的状态从挂起更改为挂起(此工具栏不是响应式搜索组件)。根据状态更改调用的反馈,我如何重新渲染 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;
  }

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

4

1 回答 1

0

如果要根据过滤器的值更新结果,可以使用reactprop,它根据reactprop 中的值更新结果。为了更好地理解这个道具,你可以在这里阅读文档。如果这不是您正在寻找的内容,最好提供 CodeSandbox 或 CodePen 链接。

希望这可以帮助!

于 2019-07-17T13:28:47.920 回答