不要在初始渲染时加载选项

时间:2018-04-03 02:35:11

标签: reactjs react-select

我的页面上有很多select个,我不希望每次加载页面时都为所有这些调用启动API调用。当异步loadOptions组件初始化时,如何跳过react-select

2 个答案:

答案 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()

这是假设当用户选择您在该状态中存储该值的值时。