2017-06-22 79 views
1

想象一下inputvalue={this.state.searchText}正确的方法来清除搜索输入和结果?

search()调用搜索查询。

哪一个是清除输入和结果的正确方法?我假设您需要在清除输入以获得原始结果后重新运行searchText: ''的查询。

resetSearch =() => { 
    this.setState({ searchText: '' },() => { 
    this.search(); 
    }); 
} 

search =() => { 
    searchQuery(this.state.searchText); 
} 

resetSearch =() => { 
    this.setState({ searchText: '' }); 
    this.search(''); 
} 

search = (query) => { 
    searchQuery(query); 
} 

回答

0

这是一个风格上的选择。

在我看来,方法1更明确,更易于阅读 - 您知道search和searchQuery显然与状态相互作用。

第二种方法更适合单元测试,因为它取决于参数而不是组件状态。

最后,这是您对可读性/可测试性IMO的要求。