首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何编译不使用子级的理由JSX函数

如何编译不使用子级的理由JSX函数
EN

Stack Overflow用户
提问于 2018-07-22 20:07:48
回答 2查看 99关注 0票数 1

注意:我指的是函数的纯原因,而不是原因

给定一个不使用子函数的JSX函数:

代码语言:javascript
运行
复制
let f = (~foo, ~children, ()) => foo;
<f foo="a" />;

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

代码语言:javascript
运行
复制
line 1, characters 16-24:
Warning 27: unused variable children.
File "hello_world.re", line 1:
Error: Some fatal warnings were triggered (1 occurrences)

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

代码语言:javascript
运行
复制
let f = (~foo, ~_children, ()) => foo;
<f foo="a" />;

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

代码语言:javascript
运行
复制
line 2, characters 7-10:
Error: This expression has type bytes but an expression was expected of type
         children:'a -> 'b

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-02 16:06:59

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

相反,您应该使用as在内部重命名它,这仍然将它标记为未使用的:

代码语言:javascript
运行
复制
let f = (~foo, ~children as _children, ()) => foo;
票数 2
EN

Stack Overflow用户

发布于 2018-07-23 01:31:10

让它成为一个可选的参数有效吗?

代码语言:javascript
运行
复制
let f = (~foo, ~children=?, ()) => foo;
<f foo="a"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51468865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档