问题标签 [reason-react]

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

reason - 如何定义可重用的常量?

我有一个 Reason React 组件,如下所示:

现在我尝试将数字重构13到一个单独的文件中:

但我无法Keys.enterMyComponent.reswitch的声明中使用。我得到的错误是:

我还尝试通过添加将模块直接包含在MyComponent.re中:

在顶部,但仍然得到相同的错误。

我对模块如何工作的理解一定是不正确的。完成我想做的事情的正确方法是什么?

0 投票
0 回答
436 浏览

reason - 编译时出现错误“找不到变体构造函数”

我正在尝试在 ReasonReact 项目中使用可排序列表组件react-sortable-hoc) 。但是我遇到了一个错误,我花了几个小时试图弄清楚。

我遵循的步骤:

  • 使@bs 为sortableContainer()模块sortableElement()绑定react-sortable-hoc
  • 伪造这两个函数返回的 reactClass 并将其放在文件SortableContainer.jsSortableElement.js
  • 制作了另一个名为 Todolist 的 React 组件,它使用组件 SortableContainer,而 SortableContainer 使用组件 SortableElement。

代码片段

当我编译这段代码时,我得到了这个错误。

这段代码有什么问题?

0 投票
1 回答
350 浏览

reactjs - 如何将 refetchQueries 与 reason-apollo 一起使用?

我正在使用 reason-apollo 并在尝试设置时遇到问题refetchQueries我的设置与此处的 swapi 示例非常相似。我有一个列表和一个表单,可以通过突变添加新项目。突变成功后,我想重新获取列表中的项目。我创建新项目的代码如下所示(跳过一些不相关的 ui 代码):

allFilms电影被成功添加,当页面刷新时,我可以在列表中看到它(正在使用查询)。但refetchQueries似乎没有任何效果。我的后端使用的是 graph.cool,类似于文档中的 swapi 示例。任何帮助表示赞赏,谢谢!

0 投票
1 回答
345 浏览

reason - 原因反应如何更好地处理事件?

我设法让活动更新,使用网络片段,我很难理解。这是整个片段:

我特别关注 onChange 行:

onChange={ev => self.send(SetLogin(ReactDOMRe.domElementToObj(ReactEventRe.Form.target(ev))##value))}

难道没有更好的方法来做到这一点吗?这似乎真的很令人费解..

0 投票
1 回答
452 浏览

reason - 你如何在 ReasonReact 应用程序中使用环境变量?

我尝试将.env文件添加到目录的根目录,并尝试使用

[@bs.val] external graphqlUrl : string = "process.env.GRAPHQL_URL";

但它当我Js.log(graphqlUrl);undefined

.env文件:

我如何访问它?

谢谢!

0 投票
1 回答
413 浏览

reason - 错误:未找到或构建包原因反应

运行后:

然后,据我所知,我运行以下命令来构建项目:

但是,我得到以下错误输出:

我该如何解决这个问题?

0 投票
2 回答
1711 浏览

reason - 如何在 ReasonML/ReasonReact 中处理全局 DOM 事件?

在 ReasonML 中侦听/处理全局 DOM 事件的最惯用的方式是什么。

我正在构建 2048 游戏的 ReasonReact 版本,我需要在其中监听键盘事件。

在一个标准的 JS/React 应用程序中,我有一个带有componentDidMount生命周期方法的组件,我可以document.addEventListener("keypress", [my_event_handler])componentWillUnmount其中使用document.removeEventListener("keypress", [my_event_handler]).

在 Reason/ReasonReact 中访问 document.(addEventListener/removeEventListener) 的最惯用的方法是什么?

0 投票
1 回答
58 浏览

reactjs - 无法输入

鉴于:

登录用户名.re

登录密码.re

登录.re

索引.re

索引.html

为什么我输入的时候没有文字出现<input>

在此处输入图像描述

0 投票
1 回答
606 浏览

reason - 在 ReasonReact 中处理孩子

我正在尝试构建自己的<MySelect>组件,用户在其中传递自己的<option>s。像这样:

但我不明白如何children处理MySelect. 文档和此处)没有显示完整的示例。

试图

我明白了

没有传播(所以children而不是...children)我得到

我确信这些错误消息和文档都告诉了我我需要知道的一切;对我来说,有太多未知的词来理解它。

我也尝试用谷歌搜索示例(这似乎是一个相当正常的用例),但在我发现的任何地方,他们都完全忽略了孩子们。

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