У меня есть два компонента AsyncSelect, чтобы выбрать категорию и подкатегорию. Когда мы выбираем категорию из первого AsyncSelect, мне нужно загрузить ее подкатегории во вторую.

AsyncSelect загружает элементы, когда он монтируется. Но как я могу запустить его программно (когда я выбираю категорию из первого AsyncSelect) для загрузки данных (подкатегории во второй AsyncSelect), когда они уже смонтированы?

 <AsyncSelect
    cacheOptions
    loadOptions={this.loadSubCategories}
    defaultOptions
    onInputChange={this.handleInputChange}
 />
4
sumedhe 25 Дек 2019 в 09:23

2 ответа

Нет, нельзя загружать по другим триггерам. как указано в документе: defaultOption

Есть two допустимых значений для свойства defaultOptions.

1) Providing an option array to this prop will populate the initial set of options (this does the job for categories) и

2) filtering the options (typing in the control). Providing the prop by itself (or with 'true') tells the control to immediately fire the remote request, (это происходит только в том же <AsyncSelect/>)

И ваше требование не соответствует, чтобы загрузить <AsyncSelect/> для подкатегории

3
Navin Gelot 25 Дек 2019 в 15:07
Спасибо. Да, я написал логин в функции this.loadOptions. Как я могу вызвать AsyncSelect, чтобы получить их с помощью этой функции? Я также попробовал установить defaultOptions = {true}.
 – 
sumedhe
25 Дек 2019 в 11:47
1
Я изменил свой ответ
 – 
Navin Gelot
25 Дек 2019 в 12:00
1
Спасибо Navin, ваш пример работает. Но мне нужно запустить программную загрузку данных. Не вводя текст в текстовой области AsyncSelect. Есть ли способ для этого?
 – 
sumedhe
25 Дек 2019 в 12:15
Вы можете дать ситуацию, обновив свой вопрос? не получил программно, когда вы хотели изменить свой параметр
 – 
Navin Gelot
25 Дек 2019 в 12:32
Есть два AsyncSelect. Предположим, они относятся к категориям и подкатегориям. Когда мы выбираем категорию из первого AsyncSelect, мне нужно загрузить подкатегории во вторую.
 – 
sumedhe
25 Дек 2019 в 12:34

Добавьте ключ в asyncSelect ваших подкатегорий.

<AsyncSelect
    key={this.state.categoryName}
    cacheOptions
    loadOptions={this.loadSubCategories}
    defaultOptions
    onInputChange={this.handleInputChange}
 />

При выборе категории измените состояние.

this.setState({categoryName: "Different NAME HERE"})
4
webstar 29 Сен 2020 в 14:00
@sumedhe, над единицей, является рабочим примером. Пожалуйста, добавьте разные ключи в свои категории. Затем он загрузит подкатегории, когда вы выберете категории.
 – 
webstar
24 Дек 2020 в 07:55