React-select defaultValue не загружается из состояния

Я пытаюсь установить значение по умолчанию для своего react-select, но оно работает некорректно.

import Select from 'react-select';

У меня есть состояние для выбранных объектов

const [ selectedProps, setSelectedProps ] = useState([]);

В моем useEffect я устанавливаю значение, исходящее из реквизита

setSelectedProps(props.location.user.properties);

Прямо перед рендерингом компонента я регистрирую данные, чтобы убедиться, что они верны.

console.log(properties);
console.log(selectedProps);

Вот мой выбор

<Select
    defaultValue={selectedProps}
    isMulti
    name="properties"
    options={properties}
    className="basic-multi-select"
    classNamePrefix="select"
    onChange={handleChangeProperties}
/>

DefaultValue ничего не показывает.

Журнал, сначала оба properties и selectedProps пусты. Затем второй журнал имеет значения: Свойства:

[
   (3) […]
​
0: Object { value: 2618, label: "Prop 1" }
​
1: Object { value: 2309, label: "Prop 2" }
​
2: Object { value: 2192, label: "Prop 3" }
​​
length: 3
​
<prototype>: Array []

selectedProps:

[
  {
    "value": 2618,
    "label": "Prop 1"
  },
  {
    "value": 2192,
    "label": "Prop 3"
  }
]

Если я жестко запрограммирую его defaultValue, он работает, но не с данными, поступающими из переменной.


person myTest532 myTest532    schedule 19.03.2021    source источник
comment
почему вы используете useEffect? ты не можешь сделать useState(props.location.user.properties)?   -  person Mr. A    schedule 20.03.2021
comment
Я инициирую состояние как пустое, и useEffect устанавливает данные состояния, если props.location.user определен. В противном случае перенаправляю страницу.   -  person myTest532 myTest532    schedule 20.03.2021


Ответы (1)


Попробуйте этот пример, вы можете назначить начальное состояние при его объявлении Тестовая среда кода

person nexun    schedule 19.03.2021