response-select не устанавливает параметр defaultValue должным образом - PullRequest
0 голосов
/ 02 августа 2020

Итак, у меня есть этот фрагмент кода, и почему-то он неправильно устанавливает значение defaultValue, вот значение patchsOptions [0]:

console.log(patchOptions[0]); // Object { value: "10.15.1", label: "10.15.1" }

<Select
    className="col-2"
    placeholder="Patch"
    defaultValue={patchsOptions[0]}
    options={patchsOptions}
    onChange={option => this.onChangePatch(option.value)}
/>

Значение по умолчанию остается пустым, но параметры загружены правильно, поэтому я не заметил проблемы, поскольку, глядя на некоторые примеры, он также использует переменную "options [0]".

Изменяя код таким образом, он работает как положено:

<Select
    className="col-2"
    placeholder="Patch"
    defaultValue={{ value: 'test', label: 'test' }}
    options={patchsOptions}
    onChange={option => this.onChangePatch(option.value)}
/>

У них одинаковая структура obj, поэтому я не понял, в чем проблема. Я зарегистрировал значение по умолчанию перед рендерингом, и оно нормально установлено, оно не пустое.

1 Ответ

0 голосов
/ 02 августа 2020

Так как patchesOptions устанавливается из вызова Asyn c, то при первом отрисовке он будет нулевым, а defaultValue не изменится, если вы измените его значение, это похоже на начальное значение, так что вы можете do - это использовать параметр значения и связать его с selectedPatch, также я сделал некоторые изменения ( onChange ), например:

<Select
    className="col-2"
    placeholder="Patch"
    value={{this.state.selectedPatch.value, this.state.selectedPatch.label}}
    options={patchsOptions}
    onChange={option => this.onChangePatch(option)}
/>
...