问题标签 [bucklescript]

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 回答
385 浏览

javascript - 将记录列表导出到不带标签的 JavaScript 对象数组

假设我有以下 ReasonML 类型:

我想将以下值导出到 JavaScript 端:

如以下结构:

我几乎可以用下面的代码来实现它:

不幸的是(但可以理解)我得到以下结果:

这个结果包含标记的记录(一个单元素数组,带有一个tag属性),这不是我要找的。

我可以在 JavaScript 端编写一个转换函数来摆脱它,但我更愿意直接从 ReasonML 生成正确的结构。

另外,如果可能,我想避免使用%bs.raw构造。

如何产生顶部显示的预期输出?

0 投票
0 回答
408 浏览

elixir - reason-react 找不到模块 bs-platform

设置

我有一个现有的 elixir/phoenix 网络应用程序

带有 vanillajs / React 的前端(通过 react-phoenix)。

我正在使用早午餐来捆绑所有东西。

目标

我希望我现有的 js react 组件能够导入和使用 reason-react 组件。

我相信我现在有明确的理由工作(一个简单的 .re hello world 生成一个 .bs.js 可以导入到我的 js react 中)。

但是在使用原因反应时它会中断。

问题

我复制了介绍示例以制作一个原因反应组件,并从教程中复制代码以将其与 js 集成。但是当我尝试从一个工作的 js 文件中导入它时,chrome 控制台显示:

控制台错误

原因反应

所以在我看来,生成的 .bs.js 文件正确调用了 reason-react 包。并且该包正确地尝试调用 bs-platform 包,但找不到它。

通过 node_modules 挖掘,我可以确认 bs-platform/lib/js/curry.js 确实存在。

文件

问候.re

生成 Greeting.bs.js

导入它:

bsconfig.json

早午餐-config.js

编辑:添加了 brunch-config.js

0 投票
1 回答
1626 浏览

dom - 如何获取节点列表中每个元素的innerHTML

假设我有以下 html:

我想记录每个元素的 innerHTML。我尝试了以下方法:

错误在线|> Array.map(Element.innerHTML)

错误是:

我怎样才能使用Dom.node以便我访问innerHTML

0 投票
2 回答
279 浏览

node.js - 将 ReasonML 函数部署到 Google Cloud Functions

我正在尝试编写一个部署过程来获取 ReasonML.bs.js输出并将其部署为 Google Cloud 功能。

这是 ReasonML 代码:

我已经成功构建了一个helloworld2.bs.js文件。我一直在尝试使用 webpack 将所需的所有内容打包到一个index.js可以作为 Google Cloud Function 运行的文件中,但我不知道如何公开我的函数名称以供 GCP 使用。

我正在使用 Node.js 8(测试版)。

0 投票
1 回答
144 浏览

ffi - 绑定到 window.navigator.getUserMedia

[@bs.module] external navigator: unit = "window.navigator";

给出以下错误Module not found: Can't resolve 'window.navigator'

如何访问 ReasonML 中的 windows.navigator?

0 投票
1 回答
685 浏览

ocaml - 如何为联合类型编写 reasonml 绑定

我正在尝试为https://github.com/oblador/react-native-keychain/blob/master/typings/react-native-keychain.d.ts#L76编写绑定

getGenericPasswordfalse如果出错则返回,否则返回object( credentials)。我不确定这种联合类型是否可以合理地表示,但更好的 API 将是一个选项(选项(凭据))的结果。但是,我怎样才能在绑定文件中转换Promise<boolean | credentials>-> 。Js.Promise.t(option(credentials))下面是一个模板。

谢谢你的帮助。

0 投票
1 回答
519 浏览

javascript - ReasonML 对命令式 vanilla JavaScript 的性能

免责声明:我是 ReasonML 初学者。

我最近开始使用 ReasonML,我注意到与普通 JavaScript 相比,性能有很大差异。这是我针对一个简单的解谜功能的示例(谜题取自:https ://adventofcode.com/2015/day/1 )

原因机器学习

JavaScript

结果

  • JavaScript:5 毫秒
  • ReasonML(递归):470ms
  • ReasonML(非递归):7185ms

这是预期的还是我的 ReasonML 函数实现太慢了?

提前感谢您的澄清/建议。

诚然,由于字符串到数组的转换,第二种解决方案(非rec)很慢,但这是因为在 ReasonML 中,字符串不是由字符列表表示的。

0 投票
1 回答
130 浏览

ocaml - 处理graphql结果时出现类型错误

我刚开始使用 reasonML 和 graphql,并构建了一个简单的反应组件,用于从世界杯 API 检索数据。我的代码如下:

匹配组件

但我收到了这个错误:

我添加了 Js.log(response##matches); 并在控制台中得到了这个
js.log

0 投票
1 回答
891 浏览

string - 将字符串拆分为字符列表的最简单方法是什么?

这似乎被Strapi 文档中的模块所涵盖,但根据打开的这个问题,这是一个疏忽。

0 投票
1 回答
539 浏览

javascript - ReasonML 访问 JS 记录字段

假设我有一个名为 的全局对象Example,它有一个构造函数,它new Example()返回一个对象,其键名为"Messaging"

假设我有以下原因/Bucklescript 代码:

这导致:

将最后一行更改为:

exampleConstructor()##messagingexampleConstructor().messaging类似地失败。这里有什么问题?如何访问我的 javascript 值?

https://reasonml.github.io/en/try?rrjsx=true&reason=NoAQRgzgdAJgpgJwJYDckDsDmACAhpAFwVwGMCBdbAgTwAc5s4APXAW1oBsGBebAbwBQ2bKEhRcEbACIAsnAgRcmDJimVW8xcqwAubBCIqBAXwDcAgTXrYA7sVr0YAURbsu2XgCloBABTM2TjgASnMBUWh0OBtKZgJEdFwORlcggGEAe3QDBABXMgyEPVz0JAIPAD5be0cXQPdeKTq3OAAVAAsVKTCAlszsonyCQt9ggGINBSUVUyA