0

我正在使用React Select,我想url作为参数传递给loadOptions. 所以,我想:

<Select.Async {...input} loadOptions={ getOptions(url) }/>

这是我的getOptions

const getOptions = ((input, callback) => {
  return fetch("http://reqres.in/api/users") // Get my url HERE
    .then((res) => {
      return res.json();
    }).then((json) => {
      return {options: json.data};
    });
});

有没有办法做到这一点?提前致谢。

解决方案 :

最简单的解决方案如下所示:

<Select.Async {...input} loadOptions={ getOptions.bind(url) }/>

并放入this而不是网址getOptions

希望这可以帮助 ;)

4

1 回答 1

0

如果 url 是固定的,请将其设为组件中的常量,并从 loadOptions 函数中访问该常量。

如果它是可变的,您应该将它存储在组件的状态中,并通过 setState(url, 'http://...'). this.state.url在 loadOptions 中访问它。然而,这个用例似乎你做错了什么。也许您可以更清楚地描述您的用例?

于 2016-11-04T12:08:11.087 回答