Невозможно изменить значение response-select fileld - PullRequest
0 голосов
/ 09 июля 2019

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

Я пытался использовать defaultValue вместо value,но тогда он ничего не выбирает при рендеринге приложения.

<Select 
    placeholder="Deposit"
    options={deposits}
    getOptionValue={ option =>
        option["id"]
    }
    getOptionLabel={ option => {
        return option["name"];
    }}
    onChange={ value => {
        this.setState({ deposit_id: value.id }}
    value={{
        value: deposit_id || "",
        name: deposit_name || ""
    }}
/>

deposits - это массив объектов, и он отображает список имен, но когда я нажимаю на одно из них,то, что я указал в value, остается выбранным, но он должен выбрать тот, на который я нажимаю ... Как мне его изменить?Что-то не так с моей функцией onChange?Или что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Попробуйте следующий код. Значение реквизита должно быть строкой, то есть значением из состояния.

<Select 
    placeholder="Deposit"
    options={deposits}
    getOptionValue={ option =>
        option["id"]
    }
    getOptionLabel={ option => {
        return option["name"];
    }}
    onChange={ value => {
        this.setState({ deposit_id: value.id }}
    value={deposit_id}
/>
0 голосов
/ 09 июля 2019

правильный формат с ключом значения / метки:

value={{ value: 'vanilla', label: 'Vanilla' }}
...