Как решить «ошибка типа опоры» для моего приложения Reaction-Dropzone - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь создать приложение, использующее реагирующую Dropzone для загрузки файлов.Я часами ломал голову над этой ошибкой.

Предупреждение: сбойный тип пропирации: недопустимая опора children типа array, предоставленная Dropzone, ожидаемая function.в Dropzone (в MyEditor.js: 145) в MyEditor (в App.js: 15) в div (в App.js: 14) в div (в App.js: 10) в приложении (в src / index.js:7) function.console. (Анонимная функция) @ index.js: 1446 printWarning @ checkPropTypes.js: 21 checkPropTypes @ checkPropTypes.js: 76 validatePropTypes @ react.development.js: 1716 createElementWithValidation @ реаги.development.js: 1809 renderMyEditor.js: 145 finishClassComponent @ react-dom.development.js: 15119 updateClassComponent @ реагировать-dom.development.js: 15074 beginWork @ реагировать-dom.development.js: 16064 executeUnitOfWork @ реагировать на dom.development.js: 20084 work@ react-dom.development.js: 20125 renderRoot @ react-dom.development.js: 20205 executeWorkOnRoot @ реагировать-dom.development.js: 21162 executeWork @ реагировать-dom.development.js: 21072 executeSyncWork @ реагировать-dom.development.js: 21046 requestWork @ реагировать на dom.development.js: 20901 scheduleWork @ реагировать на dom.development.js: 20714 scheduleRootUpdate @ реагировать на dom.development.js: 21409 updateContainerAtExpirationTime @ реагироватьt-dom.development.js: 21435 updateContainer @ реагировать-dom.development.js: 21503 ReactRoot.render @ реагировать-dom.development.js: 21816 (анонимный) @ реагировать-dom.development.js: 21968 unbatchedUpdates @ реагироватьdom.development.js: 21291 legacyRenderSubtreeIntoContainer @ react-dom.development.js: 21964 render @ реагировать-dom.development.js: 22039 (анонимно) @ index.js: 7 ./src/index.js @ main.chunk.js: 78 webpack_require @ bundle.js: 782 fn @ bundle.js: 150 0 @ main.chunk.js: 161 webpack_require @ bundle.js: 782 checkDeferredModules @ bundle.js: 46 webpackJsonpCallback @ bundle.js: 33 (анонимно) @ main.chunk.js: 1

Я пытался добавить getRootprops (), как сказано в документах, но я 'Я все еще испытываю острую проблему. Вот ссылка на репо, где виден сломанный компонент.

1 Ответ

0 голосов
/ 22 февраля 2019

Вы должны поместить функцию в компонент Dropzone, как указано в их официальных документах.И вы сами можете увидеть это по ошибке.children Дрозона нужна функция для правильной работы.

У меня есть рабочий пример из моего собственного проекта:

<Dropzone onDrop={this.onDrop}>
  {
    ({ getRootProps, getInputProps }) => {
      return (
        <div {...getRootProps()} className="image-dropzone">
          <input {...getInputProps()} />
          <div className="preview-container">
            <div className="preview">
              {
                !isEmpty(files) ? (
                  <img src={files[0].preview} alt={files.name} />
                ) : (
                  <span>your thumbnail goes here...</span>
                ) 
              }
            </div>
          </div>
        </div>
      )
    }
  }
</Dropzone>

Этот код предварительно просматривает изображение на files пропелле после того, как пользователь добавил изображение через Reaction-Dropzone.

Вы можете попытаться адаптироваться к вашему коду.По сути, вам нужен ввод внутри функции внутри Dropzone компонента, и этот ввод действует как общий ввод с type = "file".

...