问题标签 [rescript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
75 浏览

interop - 高阶函数的可选参数

我尝试为 socket.io 编写一个绑定。

我在使用不带参数或错误对象 ( ) 的函数时遇到问题(next()在底部的示例代码中Js.Exn.raiseError("ERROR!"))。

我找不到一种方法来定义可以将两种类型的参数作为第一个值的函数签名。

我什至不确定,如果我所要求的内容可以在 rescript 中实现,那么以正确的 rescript 方式解决该问题的任何帮助将不胜感激。

我当前的实现如下所示:

0 投票
0 回答
46 浏览

relay - 在哪里将 RescriptRelay 环境提供程序添加到 Rescript-Nextjs 模板?

我正在尝试将Rescript-Nextjs 模板与 rescript-relay 一起使用,并尝试使用 MainLayout 包装,<RescriptRelay.Context.Provider environment=RelayEnv.environment/>但出现以下错误:

我曾尝试将其向上移动以将每个案例也包含在 App.res 中,但无济于事。任何帮助将非常感激

0 投票
1 回答
142 浏览

javascript - ReScript、TypeScript:找不到模块“@rescript/react/src/ReactDOM.gen”或其相应的类型声明

我正在逐渐将使用 React to TypeScript 的应用程序重写为 ReScript。我已经在 ReScript 中实现了几个组件,但这是第一个,我将ReactDOM.Style.t其用作组件的属性。

这是我最小化的组件代码:

ReScript 编译得很好(除了没有使用的警告sx,但我们可以忽略它)。

bs.js生成了以下内容,这似乎很好:

以及导致问题的以下相应.gen.tsx文件:

这不编译,我收到 TypeScript 错误:

我明白,那个 TS 找不到rescript/react/src/ReactDOM.gen,但我真的不知道为什么。有什么想法可以解决这个问题吗?

我的包版本:

谢谢你。

0 投票
2 回答
77 浏览

slider - 将 JavaScript 转换为 ReScript 时遇到问题

我想用 ReScript 实现一个交互式滑块,所以我想把这个 JavaScript 翻译成 ReScript(礼貌:https ://www.w3schools.com/howto/howto_js_rangeslider.asp ):

其中目标 HTML ( slider.html) 是:

其中bundled.bs.js是将编译后的.bs.js代码与Browerify.

到目前为止,我使用rescript-webapi编写了以下代码:

但是,这并没有按预期工作;我可以看到滑块并滑动它,但输入标签的值没有更新:

滑块在那里,但它不会更新值。

我的 ReScript 翻译缺少什么?

+更新:

@glennsl 为我提供了以下代码:

我可以看到Value: 具有正确初始值的50. 初始屏幕的值:50。 但是,即使我重新定位了滑块,该值也不会更新:值未使用重新定位的滑块更新。

如上所述,我将这段代码(称为slider.res)编译slider.bs.jsbrowserify slider.bs.js -o bundled.bs.js.

0 投票
0 回答
69 浏览

react-native - 在 react native metro 或 watchman 中按类型忽略文件监视

我正在编写一个在 react native 中使用 rescript 的项目(这里,它在 expo 中)

在这个项目中,我一直在单独的终端中运行两个命令:

  • yarn rescript build -w这使得 rescript 监视.res文件中的更改并将它们编译为.js
  • yarn start这使得 react native(metro bundler)监视任何文件更改并触发应用程序重新加载

我遇到的第一个问题是,当我保存.res文件时,metro 会触发应用程序重新加载并重新编写文件以将文件重新编译为.js

所以我的应用程序最终得到了过时的.js文件(rescript save -> reload | 然后在热重载完成之前重新编写为 js)。

我遇到的第二个问题是,在第二次保存后,metro 崩溃了:

我相信这是由两个进程试图对同一个文件做某事引起的......

无论如何,我相信这些问题可以通过让 Metro 简单地不关注.res文件中的更改(因此不重新加载)来解决,那么,有没有办法告诉 Metro(或守望者)不观看 .res文件?

我尝试使用blacklistREatmetro.config.js但它没有用:

0 投票
1 回答
32 浏览

javascript - 如何在 ReScript 应用程序中使用 react-datepicker

我正在尝试使用外部库,例如 react-datepicker。

我的代码和用法:

但是,我有一个错误:

未捕获的错误:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象。检查...的渲染方法

PS:我从这个答案中尝试了一个解决方案Can't create ReasonML bindings for react-contenteditable但它没有帮助我解决错误