2016-11-04 2 views
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 вместо URL в getOptions

Надеются, что это помогает;)

+0

вид, как получение параметров асинхронно, вам может потребоваться установить URL-адрес в состоянии, а затем обновить его, как только getOptions() вернется – Jayce444

ответ

0

Если url фиксирован, сделать его постоянным в вашем компоненте и получить доступ к этой константе fr om в вашей функции loadOptions.

Если переменная, вы должны сохранить ее в состоянии своего компонента и обновить ее соответствующим образом через setState(url, 'http://...'). Получите доступ к нему с помощью this.state.url в пределах loadOptions. Hovever, этот случай использования кажется, что вы делаете что-то неправильно. Может быть, вы можете более четко описать свой пример использования?

Смежные вопросы