如何编译不使用子级的Reason JSX函数

时间:2018-07-22 20:07:49

标签: jsx reason

[注意:我指的是纯粹的Reason JSX函数不是 Reason React PPX]

给出不使用子级的JSX函数:

value

尝试使用dune build进行编译会产生此错误,这似乎阻止了可执行文件的创建:

let f = (~foo, ~children, ()) => foo;
<f foo="a" />;

使用下划线将children参数标记为未使用:

line 1, characters 16-24:
Warning 27: unused variable children.
File "hello_world.re", line 1:
Error: Some fatal warnings were triggered (1 occurrences)

产生一个关于从JSX调用中期待孩子的错误:

let f = (~foo, ~_children, ()) => foo;
<f foo="a" />;

有没有办法编译不使用子级的JSX函数?

2 个答案:

答案 0 :(得分:2)

问题在于~_children不仅在内部重命名参数并将其标记为未使用,而且也在外部重命名。因此~children不再是函数签名的一部分。

相反,您应该使用as在内部对其进行重命名,这仍然会将其标记为未使用:

let f = (~foo, ~children as _children, ()) => foo;

答案 1 :(得分:0)

是否可以使它成为可选参数?

let f = (~foo, ~children=?, ()) => foo;
<f foo="a"/>