Async React Select не покажет мне предложения - PullRequest
0 голосов
/ 29 января 2019

Я использую Async React-Select для получения некоторых значений, проблема в том, что я получаю данные, я могу отфильтровать их, но результат не появится в окне предложения.

Я пробовал разные методы, с функцией фильтра без нее, я даже пытался скопировать код, написанный в другом приложении, но безуспешно.

Это код, который я используюдля получения данных:

getBusinesses = (input) => {
        axios.get(API.GET_BUSINESSES_USERS, {
            params: {
                token: this.props.token
            }
        }).then((response) => {
            const options = response.data.businesses.map(business => ({ label: business.email, value: business.id }));
            this.setState({
                options
            })
            new Promise(resolve => {
                console.log(this.filterOptions(input))
                resolve(this.filterOptions(input))
            })
        }).catch((err) => {
            console.log(err);
        })
    }

Этот метод фильтрует данные:

    filterOptions = (inputValue) => {
        return this.state.options.filter(i =>
            i.label.toLowerCase().includes(inputValue.toLowerCase())
        );
    };

И вот как я создал компонент Async:

 <Async
   name="form-field-name"
   loadOptions={this.getBusinesses}
   loadingPlaceholder="Cargando..."
   placeholder="Carrera..."
   autoBlur={true}
   clearable={false}
/>

1 Ответ

0 голосов
/ 30 января 2019

Как указано в документации , при использовании реквизита loadOptions с обещанием необходимо вернуть обещание, чтобы можно было загрузить параметры из разрешенного результата.

Просто добавьте return перед вашим axios.get вызовом или измените {} на () в функции getBusinesses, чтобы axios вызывал возвращаемое значение функции.

Надеюсь, это поможет.

...