Semantic-UI-React, выбор, мульти, не может установить defaultValue

У меня есть компонент React:

<Dropdown
    placeholder={field[propName].label}
    id={propName}
    fluid
    multiple
    selection
    search
    defaultValue={defaultOptions}
    options={options}
/>

Итак, options и defaultOptions - это одинаковые структурные массивы {text: 'string, value: 'string'}.

В исходном коде семантического пользовательского интерфейса я нашел это:

/** Initial value or value array if multiple. */
    defaultValue: PropTypes.oneOfType([
      PropTypes.string,
      PropTypes.number,
      PropTypes.arrayOf(PropTypes.oneOfType([
        PropTypes.string,
        PropTypes.number,
      ])),
    ])

Вот почему мой код выше дает мне ошибку:

`Warning: Failed propType: Invalid prop `defaultValue` supplied to `Dropdown`. Check the render method of `View`.`

Итак, вопрос в том, как тогда я должен установить defaultValue для типа множественного выбора раскрывающегося списка?


person Sarkis Arutiunian    schedule 07.11.2016    source источник


Ответы (1)


defaultValue не может быть объектом для реакции семантического интерфейса. Это может быть только значение. http://react.semantic-ui.com/modules/dropdown. Если вы посмотрите на реквизиты defaultValue, в документах говорится, что это может быть строка, число или arrayOf.

Обычно я устанавливаю значение раскрывающегося списка, используя immutabilityJS, когда он включен.

<Dropdown
    placeholder={field[propName].label}
    id={propName}
    fluid
    multiple
    selection
    search
    defaultValue={dropdownList.get('forWhat')}
    options={options}
    onChange={(e, {value}) => this.updateDropdownList('forWhat',[value:value, text:"works"])}
/>
person Craig1123    schedule 07.11.2016
comment
Я пытаюсь передать массив строк со значением, то же значение, которое я использую в {текст: '', значение: ''}, объект, и это все еще не работает - person Sarkis Arutiunian; 07.11.2016
comment
Я только что попробовал свой код с [value:value, text:'works'], и это работает. Можете ли вы опубликовать больше своего кода. Может быть, это что-то другое - person Craig1123; 07.11.2016
comment
*[{значение:значение, текст:'работает}] - забыл добавить {} - person Craig1123; 07.11.2016
comment
этот массив как варианты, верно? поэтому давайте предположим, что у нас есть 3 объекта в этом массиве, значением является объект JSON.stringified. Итак, что бы вы установили в качестве значения по умолчанию? Просто массив значений? - person Sarkis Arutiunian; 07.11.2016
comment
о, подождите, я теперь получаю ту же ошибку. Похоже, вы не можете создать массив объектов или объект JSON.stringified в semantic-ui-react. Извините за путаницу. Однако вы можете сделать [значение, строка, 100]. Но объекты недействительны. Если вы хотите увидеть эту функцию, опубликуйте ее на github.com/Semantic. -Org/Semantic-UI-React/issues как проблема - person Craig1123; 07.11.2016
comment
Это нехорошо, почему я могу использовать строку, но не могу использовать JSON. строковый объект) Но спасибо! - person Sarkis Arutiunian; 07.11.2016