清除redux状态的最佳方法

时间:2017-11-30 00:44:32

标签: reactjs react-redux

我对清除redux状态有疑问。 我有一个名为search的状态用于搜索带有提取的地址。它的结构如下

search:{
  status: 'INIT',
  results: [],
}

status是异步请求的标志,例如' SUCCESS'或者'失败'。

results是抓取的结果。

当用户搜索地址带有一些搜索词时,结果会有提取结果。 我的组件像这样呈现,

<div>
   {this.props.results.map((result,i)=>{
     <div>{result}</div>
   )}
</div>

所以我的问题是当用户尝试在其他一些工作之后再次搜索时,组件呈现之前的搜索结果,因为results不明确。

目前,我发送行动&#39; CLEAR_SEARCH&#39;在使用结果工作完成后初始化search状态。但我认为这不是一个好方法。

有没有更好的主意?

2 个答案:

答案 0 :(得分:2)

当您开始初始化新请求时,您可以发送一个动作调用START_LOADING

JsonConverter

然后像这样处理:

 dispatch(startLoadingAction())
 try {
     const result = await fetch...
     dispatch(successAction(result));
 } catch {
     dispatch(failureAction());
 }

答案 1 :(得分:0)

在redux中请求的常见模式看起来更像 { isLoading: false, data: [], error: false, isLoaded: true, hasFailed: false, }这样当您清除或重新发布搜索结果时,请求的状态会发生变化,您可以根据请求而不仅仅是数据的存在来显示。