reason - 重新编写大写组件
问题描述
从Rescript Documentation中,建议可以使用 spread 来启用将预先存在的列表传递给组件。我很困惑 Rescript 中到底MyComponent
是什么,因为我找不到初始化组件的方法,这可以通过 vanilla React 中的函数来完成。
<MyComponent>...myChild</MyComponent>
在哪里myChild = list{child1,child2}
多次尝试后,以下方法不起作用:
@JSX div(~children=myChild)
,因为 Rescript 要求将其包装在一个列表中,如list{myChild}
@JSX div(~children=list{myChild})
,这给出了一个类型错误- 初始化一个名为 MyComponent 的模块,然后执行
<MyComponent> ...myChild </MyComponent>
,但这给出了错误The value make can't be found in MyComponent
- 使用大写转义初始化函数:
let \"MyComponent" = () => ...
,但这会产生错误The module or file MyComponent can't be found.
我想要的是一个组件初始化的例子,MyComponent
它可以用作一个大写的标签,比如<MyComponent>...myChild</MyComponent>
. 先感谢您。
解决方案
module MyComponent = {
@react.component
let make = (~children: list<React.element>) => {
<div> {Belt.List.toArray(children)->React.array} </div>
}
}
来自Rescript 论坛。
推荐阅读
- kotlin - 如何修复此 Timer 程序中的错误和语法?
- windows - 如何使用“查看设备网页”选项配置 Linux 设备以显示在 Windows 网络资源管理器中?
- elasticsearch - Elasticsearch 按查询版本冲突删除
- powershell - 在PowerShell中使用if条件验证表达式成功
- regex - RegEx 用于匹配数字并在特殊字符上失败
- python - 局部变量与全局变量,'name'EXAMPLE'未定义
- regex - 用于捕获第一次迭代的 RegEx
- javascript - Cron 作业不加载函数
- kubernetes - kubernetes - cert-manager 证书链
- c# - 使用 WiX 安装程序包含 dll 文件