Как передать варианты в качестве реквизита для компонентов ReactML в ReasonML? - PullRequest
0 голосов
/ 30 апреля 2019

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

type ipAddr =
  | IPV4
  | IPV8;


[@react.component]
let make = () => {
  let appData = Data.tileData;
  <div className="App">
    <header className="flex outline justify-between" />
    <Content selected={ipAddr.IPV4} appData />
  </div>;
};

но выдает ошибку,

ниндзя: ошибка: пересборка build.ninja: подкоманда не выполнена

Я также пытался отправить варианты напрямую в Компонент.

  <div className="App">
    <header className="flex outline justify-between" />
    <Content selected=IPV4 appData />
  </div>;

Но в итоге получилась еще одна ошибка

Начать компиляцию ниндзя: ошибка: цикл зависимости: src / App-ReactHooksTemplate.cmj -> src / Content-ReactHooksTemplate.cmj -> src / App-ReactHooksTemplate.cmj Завершить компиляцию (выход: 1)

Куда я иду не так?

Ответы [ 2 ]

1 голос
/ 01 мая 2019

Я решил это по-другому. Вместо того, чтобы передавать вариант как prop, я просто отображал разные компоненты на основе значения варианта.

[@react.component]
let make = () => {
  let appData = Data.tileData;
  switch (selected) {
  | IPV4 =>
    <div>
      <IPV4Renderer appData />
    </div>
  | IPV6 =>
    <div>
      <IPV6Renderer appData />
    </div>
  };
};
1 голос
/ 30 апреля 2019

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я не знаю ReasonML, однако

Если бы это был OCaml, вы бы просто написали IPV4, не нужно квалифицировать его как ipAddr.IPV4.
Возможно, это то же самое в Причине?

...