При компиляции появляется ошибка «вариант конструктора не найден» - PullRequest
0 голосов
/ 09 мая 2018

Я пытался использовать компонент списка сортировки ( реагировать на сортировку-hoc ) в проекте ReasonReact. Но я столкнулся с ошибкой, которую пытался выяснить пару часов.

Шаги, за которыми я следовал:

  • сделал связки @bs для sortableContainer() и sortableElement() для модуля react-sortable-hoc
  • подделал реагирующий класс, возвращенный обеими функциями, и поместил его в файл SortableContainer.js и SortableElement.js
  • Сделал еще один компонент React, называемый Todolist, который использует компонент SortableContainer, а SortableContainer использует компонент SortableElement.

Фрагмент кода


/* SortableContainer.re */

[@bs.val] [@bs.module "react-sortable-hoc"] external sortableContainer : 'a =>
ReasonReact.reactClass = "";

let sortableContainerReactClass: ReasonReact.reactClass = sortableContainer(() => {
  <ul>(ReasonReact.createElement(SortableElement))</ul>
});

let make = (children) =>
  ReasonReact.wrapJsForReason(
    ~reactClass=sortableContainerReactClass,
    ~props = { "onSortEnd": () => {} },
    children
  );

/* SortableElement.re */

[@bs.val] [@bs.module "react-sortable-hoc"] external sortableElement : 'a => 
ReasonReact.reactClass = "";

let sortableElementReactClass: ReasonReact.reactClass = sortableElement(() => {
  <li>(ReasonReact.stringToElement("testing is good"))</li>
});

let make = (children) =>
ReasonReact.wrapJsForReason(
  ~reactClass=sortableElementReactClass,
  ~props = { "onSortEnd": () => {} },
  children
);
/* List.re */

let component = ReasonReact.statelessComponent("List");


let make = (~items=[||], _children) => {
  {
    ...component,
    render: (_self) => {
      
        
      
    }
  }
};

Когда я компилирую этот код, я получаю эту ошибку.

# ERROR

We've found a bug for you!
  /Users/jaisonjustus/code/todotabre/src/components/SortableContainer.re 5:34-48

  3 │
  4 │ let sortableContainerReactClass: ReasonReact.reactClass = sortableConta
      iner(() => {
  5 │   <ul>(ReasonReact.createElement(SortableElement))</ul>
  6 │ });
  7 │

  The variant constructor SortableElement can't be found.

  - If it's defined in another module or file, bring it into scope by:
    - Annotating it with said module name: let food = MyModule.Apple
    - Or specifying its type: let food: MyModule.fruit = Apple
  - Constructors and modules are both capitalized. Did you want the latter?
    Then instead of let foo = Bar, try module Foo = Bar.

Что не так в этом коде?

...