Недопустимая подпрограмма `selected` типа` String`, переданная в `Calendar`, ожидаемый экземпляр` Date`? - PullRequest
0 голосов
/ 09 декабря 2018

Я использую средство выбора даты В реакции js https://www.npmjs.com/package/react-datepicker, но мое текущее значение пусто null. Теперь я хочу показать средство выбора даты, когда фокусируюсь на input field. Но я получаю сообщение об ошибке / предупреждениепочему?

proxyConsole.js:72 Warning: Failed prop type: Invalid prop `selected` of type `String` supplied to `Calendar`, expected instance of `Date`.
    in Calendar (created by OnClickOutside(Calendar))
    in OnClickOutside(Calendar) (created by DatePicker)
    in div (created by InnerPopper)
    in InnerPopper (created by Context.Consumer)
    in Popper (created by PopperComponent)
    in Manager (created by PopperComponent)
    in PopperComponent (created by DatePicker)
    in DatePicker (created by Main)

На самом деле я добавил одно условие при преобразовании данных

 data[i].displaytext = i;
        if (data[i].dataType === "DATE" && data[i].value) {
          data[i].value = new Date(data[i].value);
        }
        obj[lastLabel] = [...obj[lastLabel], data[i]];
      }

вот мой код https://codesandbox.io/s/rmx02zzr5o

Пожалуйста, помогите мне удалить это предупреждение

1 Ответ

0 голосов
/ 09 декабря 2018

Похоже, что по умолчанию value в вашем DOB объекте является строкой, но компонент, которому вы передаете его, ожидает Date.Похоже, что изменение

DOB: {
    value: "",
    type: "FIELD",
    editable: true,
    dataType: "DATE",
    required: true,
    displayName: null,
    pattern: null
}

на

DOB: {
    value: null, // <- specifically this line
    type: "FIELD",
    editable: true,
    dataType: "DATE",
    required: true,
    displayName: null,
    pattern: null
}

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

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