2017-04-11 95 views
0

对表单下拉选项进行异步请求的正确方法是什么?
有大量的下拉选项,例如说城市。我们希望这些存储在状态?表单选项的React Redux请求

通常,我们将通过Redux商店创建Redux动作,请求“城市”并使用“城市”选项更新状态。 MapDispatchToProps并从componentDidMount调用Redux操作。

componentDidMount =() => { 
    this.props.fetchCitiesOptions() 
} 

MapStateToProps将包括options: cities这可能是1000个城市以上,仅在1种形式使用。我们想要在全球范围内进行这项工作吗?如果不是,那么更好的方法是什么?学习。谢谢。

+0

我会使用类似https://www.npmjs.com/package/react-async-autocomplete来达到这个目的 – Panther

回答

0

您可以选择只有这个表单元素的本地状态。如果您想要一个受控组件,但不希望/需要选项处于全局状态,请为您的表单创建一个包装组件,以跟踪本地状态并更新componentDidMount中的本地状态。您可以混合/匹配本地和全局状态,具体取决于项目中需要的状态。如果您不需要项目状态其余部分的表单提交数据,则本地状态还可以跟踪表单更改并提交。

+0

使用React w/Redux时,在Redux操作之外进行异步调用是否是一种好的设计实践? – csi