2016-11-04 109 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}; 
    }); 
}); 

反正有沒有做到這一點?提前致謝。

SOLUTION:

最簡單的解決辦法是這樣的:

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

getOptions

希望這有助於把this而不是URL的;)

+0

看到獲取選項是異步的,您可能必須將URL設置爲狀態,然後在getOptions()返回時更新它 – Jayce444

回答

0

如果URL是固定的,使它在你的組件中是一個常量,並訪問那個常量fr om在你的loadOptions函數中。

如果它是可變的,則應將其存儲在組件的狀態中,並通過 setState(url, 'http://...')對其進行相應更新。在loadOptions中使用this.state.url訪問它。 Hovever,這個用例看起來像是你做錯了什麼。也許你可以更清楚地描述你的用例?