我的页面上有很多select
个,我不希望每次加载页面时都为所有这些调用启动API调用。当异步loadOptions
组件初始化时,如何跳过react-select
?
答案 0 :(得分:1)
根据文档,您似乎可以指定autoload={false}
。来自docs:
除非您指定属性autoload = {false},否则控件将在安装时自动加载默认选项集(即输入:'')。
更新:
要解决您必须输入内容的问题,可以添加onFocus
回调。当单击react选项组件或选项卡时,将触发此操作,而不是等待用户键入内容。它可能看起来像这样:
<ReactSelect
...otherProps
onFocus = { this.fetchData }
/>
为防止不断重新获取数据,您可能希望跟踪数据是否已在某个地方获取。您可以将初始状态声明为fetched: false
,然后在加载选项的函数中设置this.setState({ fetched: true })
。最后,您的fetchData
函数可以在请求新数据之前检查this.state.fetched
。
答案 1 :(得分:1)
state= {option1:'', option2:'', option3:''}
如果填写了选项1,请选择#2&#39的值
this.state.option1 && apicall for option 2().
如果填写了选项2,请选择#3&#39的值
this.state.option2 && apicall for option 3().
所有这些都可以在componentDidMount()
这是假设当用户选择您在该状态中存储该值的值时。