React Asyn c Выберите, как создавать динамически - PullRequest
0 голосов
/ 30 марта 2020

Можно было бы с React Select Asyn c динамически передавать источник и использовать данные в потоке?

let fields = this.state.fields.map((field, i) => { 
        <div key={i} className={"field-wrapper"}>
            <AsyncSelect
               cacheOptions
               //loadOptions={loadOptions} this should fetsch direcl from field.source (url)
               //defaultOptions
               placeholder={field.label}
               onInputChange={this.handleInputChange}
            />
        </div>
});

, и вот что я попробовал

<AsyncSelect
      loadOptions= { 
         function (inputValue, callback) {
           Requests.get(field.source, (status, data) => {
                 callback(data);
           });
       }}
       isDisabled={disabled}
       defaultOptions
       placeholder={field.label}
       onInputChange={this.handleSelectChange}
  />

1 Ответ

0 голосов
/ 02 апреля 2020

Вы можете управлять отдельными полями, задав uniq key в потоке. Потому что, если вы не сделаете это, второе поле не знает, когда первое поле меняет значение. А если вы дадите uniq изменяемый ключ, то секунда может загружаться из удаленных данных, которые зависят от первого поля. React не знает, где ваши поля должны перерисоваться и получить еще один source в потоке. И что для этого вам нужно управлять uniq key полями для смены источника и получать новые данные с удаленного компьютера. Например, вы можете связать его с другим значением field. как:

key={!!values.first && !!values.first.id ? values.first.id : null}

И реагировать будет знать, что key изменилось. И заново отрендерить это поле. И поле получает новый источник в потоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...