Валидация draft-js EditorState с помощью yup в Formik - PullRequest
0 голосов
/ 03 сентября 2018

Я использую Draft-js с Formik с yup для проверки компонента Draft EditorState.

Я предполагал, что смогу проверить, что EditorState не пустой, используя следующий тест yup:

//Each note has a string title and a body, which is a Draft EditorState
const validationSchema = yup.object().shape({
  title: yup.string(),
  body: yup.object()
    .test("has text", "Cannot save an empty note", (value) => {
      return value.getCurrentContent().hasText();  //boolean
  }),
})

Однако я получаю сообщение об ошибке:

Uncaught (в обещании) TypeError: Невозможно прочитать свойство 'length' undefined в yupToFormErrors (formik.esm.js: 491) в formik.esm.js: 174

Это ошибка с formik , или я неправильно использую yup ?

Другая информация:

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

console.log(value.getCurrentContent().hasText())  //returns undefined
console.log(value.getCurrentContent())  //returns undefined

Но внутри обработчика onChange для EditorState (поле 'body') он работает правильно:

console.log(value.getCurrentContent().hasText())  //returns true or false

1 Ответ

0 голосов
/ 05 октября 2018

Это работает для меня с версией 0.10.5:

value._editorState.getCurrentContent().hasText()
...