问题标签 [recoiljs]

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

reactjs - 如何创建 Recoil MutableSnapshot?

根据文档, https://recoiljs.org/docs/api-reference/core/RecoilRoot

<RecoilRoot>接受道具作为initializeState?: (MutableSnapshot => void)签名。
能够初始化 Recoil State 所以我想使用这个道具,但我不明白如何制作MutableSnapshot对象。

另一方面,虽然Snapshot更容易获得useRecoilSnapshot()

0 投票
1 回答
1991 浏览

javascript - 当原子状态更新到以前的值时,React Recoil 选择器不会触发其获取

我通过自己的一个快速项目开始学习 React 和 Recoil。一个具有按钮的单页网站,简而言之,每个按钮都会进行 REST 调用,并使用返回的数据创建一个表。

单击按钮时,它会更新一个存储给定按钮的 URL 的原子。选择器订阅此原子并触发对 API 的异步 REST 请求。从那里,返回的数据被处理成一个表。

在第一次单击每个按钮时,一切都按预期工作。调用特定的 URL 并生成表。问题是,如果第二次单击按钮,则会显示先前获取的数据。我不确定我是否遗漏了一个重要步骤,并且调试并没有真正向我透露任何信息。

原子类:

选择器类:

包含按钮的 NavBar 类:

生成表格的表格类:

更新:我通过放弃使用选择器并混合钩子和原子来获得类似的功能来解决这个问题,如下所示:

虽然我不觉得这很理想。

0 投票
1 回答
315 浏览

reactjs - RecoilJs 正在冻结 UI

我正在为我的项目使用反冲 Js,我有一个原子

我正在使用它

这个组件被放置在

我试图在应用程序加载之前获取当前的用户信息,以便我可以跟踪用户是否登录。但是该应用程序在加载时卡住了,我在控制台上收到此错误。 在此处输入图像描述

0 投票
1 回答
1967 浏览

reactjs - 使用 react recoil 和 react-hook-form 执行获取请求

我正在尝试使用 reactrecoil进行状态管理,到目前为止我很喜欢它,但是目前我正在尝试将它与之集成,但react-hook-form我找不到适合我的设置。

很简单,我想执行一个函数,onSubmit在完成一个Form. 我已经设置了一个selector来发出异步请求并更新一个atom与上传进度相对应的,但是我在执行该函数时遇到了麻烦,因为它在回调而不是功能组件中被调用,我试图将它提取到一个自定义钩子,但这也无效;我已经提供了下面的代码,如果有人有任何想法,请告诉我!

当前实现的示例错误:

React Hook "useRecoilValue" is called in function "submit" which is neither a React function component or a custom React Hook function

代码

0 投票
2 回答
2136 浏览

javascript - Recoil atom 的默认值可以是对象吗?

我可以将 Recoil 原子的默认值设置为对象吗?

例如:

然后将其设置为:

0 投票
4 回答
4717 浏览

reactjs - 如何从反冲的atomFamily中获取所有元素?

我第一次玩反冲,不知道如何从 atomFamily 中读取所有元素。假设我有一个应用程序,用户可以在其中添加餐点:

我可以如下初始化一顿饭:

我如何阅读已添加到此 atomFamily 的所有项目?

0 投票
1 回答
1565 浏览

reactjs - React / Recoil - setAtom 新值何时可用?

我试图了解 React Recoil 以及更新的原子值何时可用,或者如何使新值在应用程序中垂直和水平传播。

例如,如果我调用了一个原子userState并且我更新了它的一个属性,例如avatar_url,如果我在 setUser 之后立即对其进行控制台,则该值不是新值。

0 投票
0 回答
228 浏览

reactjs - 我可以在没有 React 的情况下使用 Recoil 吗?

我想为一个不使用任何框架的应用程序尝试 Recoil,只使用 Web 组件。Redux 可以在没有框架的情况下使用(我怀疑 Redux Toolkit 也可以),但我看到的所有 Recoil 示例都涉及 React。

我可以在没有 React 的情况下使用 Recoil 吗?

0 投票
1 回答
381 浏览

reactjs - 有没有办法在 react-testing -library 中测试组件之前初始化多个原子状态?

现在我正在初始化单个原子状态,如下所示

我正在尝试errors在上面的代码中添加另一个原子。

这是正确的用法吗?

0 投票
1 回答
376 浏览

javascript - React/Recoil:一旦在主应用程序中设置状态,就不能在组件内再次设置?

从 App.js 文件中的可加载项设置状态后:

setFocusState从组件内调用函数Point似乎不起作用:

当我console.log(focusState)在 function 中添加 switch 语句的相关部分时handleKeyEvent,它表明每次setFocusState从 Point 组件中调用时,没有任何变化,并且值focusState保持与初始设置相同。我猜这就是为什么setCursor不通过useEffect调用的原因。

有人可以建议这里出了什么问题吗?需要改变什么

  1. setFocusState实际修改从组件focusState内调用时的值Point
  2. 为此,通过实际修改光标位置setCursor