问题标签 [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.
reason - 如何定义可重用的常量?
我有一个 Reason React 组件,如下所示:
现在我尝试将数字重构13
到一个单独的文件中:
但我无法Keys.enter
在MyComponent.reswitch
的声明中使用。我得到的错误是:
我还尝试通过添加将模块直接包含在MyComponent.re中:
在顶部,但仍然得到相同的错误。
我对模块如何工作的理解一定是不正确的。完成我想做的事情的正确方法是什么?
reason - 编译时出现错误“找不到变体构造函数”
我正在尝试在 ReasonReact 项目中使用可排序列表组件(react-sortable-hoc) 。但是我遇到了一个错误,我花了几个小时试图弄清楚。
我遵循的步骤:
- 使@bs 为
sortableContainer()
模块sortableElement()
绑定react-sortable-hoc
- 伪造这两个函数返回的 reactClass 并将其放在文件
SortableContainer.js
和SortableElement.js
- 制作了另一个名为 Todolist 的 React 组件,它使用组件 SortableContainer,而 SortableContainer 使用组件 SortableElement。
代码片段
当我编译这段代码时,我得到了这个错误。
这段代码有什么问题?
reactjs - 如何将 refetchQueries 与 reason-apollo 一起使用?
我正在使用 reason-apollo 并在尝试设置时遇到问题refetchQueries
。我的设置与此处的 swapi 示例非常相似。我有一个列表和一个表单,可以通过突变添加新项目。突变成功后,我想重新获取列表中的项目。我创建新项目的代码如下所示(跳过一些不相关的 ui 代码):
allFilms
电影被成功添加,当页面刷新时,我可以在列表中看到它(正在使用查询)。但refetchQueries
似乎没有任何效果。我的后端使用的是 graph.cool,类似于文档中的 swapi 示例。任何帮助表示赞赏,谢谢!
reason - 原因反应如何更好地处理事件?
我设法让活动更新,使用网络片段,我很难理解。这是整个片段:
我特别关注 onChange 行:
onChange={ev => self.send(SetLogin(ReactDOMRe.domElementToObj(ReactEventRe.Form.target(ev))##value))}
难道没有更好的方法来做到这一点吗?这似乎真的很令人费解..
reason - 你如何在 ReasonReact 应用程序中使用环境变量?
我尝试将.env
文件添加到目录的根目录,并尝试使用
[@bs.val] external graphqlUrl : string = "process.env.GRAPHQL_URL";
但它当我Js.log(graphqlUrl);
是undefined
!
.env
文件:
我如何访问它?
谢谢!
reason - 错误:未找到或构建包原因反应
运行后:
然后,据我所知,我运行以下命令来构建项目:
但是,我得到以下错误输出:
我该如何解决这个问题?
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) 的最惯用的方法是什么?
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