我已经尝试了以下方法来发送变体作为道具。
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':子命令失败
我也尝试过将变体直接发送到Component。
<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)
我要去哪里错了?
答案 0 :(得分:1)
免责声明:我不知道ReasonML,但是
如果是OCaml,则只需编写IPV4
,而不必像ipAddr.IPV4
那样限定它。
也许原因是一样的?
答案 1 :(得分:1)
我用另一种方式解决了这个问题。我没有将变体作为prop传递,而是仅根据变体值渲染了不同的组件。
[@react.component]
let make = () => {
let appData = Data.tileData;
switch (selected) {
| IPV4 =>
<div>
<IPV4Renderer appData />
</div>
| IPV6 =>
<div>
<IPV6Renderer appData />
</div>
};
};