-1

我尝试了以下方法来将变体作为道具发送。

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>;

但它最终返回了另一个错误

开始编译ninja:错误:依赖循环:src/App-ReactHooksTemplate.cmj -> src/Content-ReactHooksTemplate.cmj -> src/App-ReactHooksTemplate.cmj 完成编译(退出:1)

我哪里错了?

4

2 回答 2

1

免责声明:但是,我不知道ReasonML

如果是 OCaml,您只需编写IPV4,无需将其限定为ipAddr.IPV4.
也许这在《理性》中是一样的?

于 2019-04-30T07:43:15.767 回答
1

我已经用另一种方式解决了这个问题。我没有将变体作为道具传递,而是简单地根据变体值渲​​染不同的组件。

[@react.component]
let make = () => {
  let appData = Data.tileData;
  switch (selected) {
  | IPV4 =>
    <div>
      <IPV4Renderer appData />
    </div>
  | IPV6 =>
    <div>
      <IPV6Renderer appData />
    </div>
  };
};
于 2019-05-01T16:07:32.697 回答