问题标签 [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.
reactjs - 如何创建 Recoil MutableSnapshot?
根据文档, https://recoiljs.org/docs/api-reference/core/RecoilRoot
<RecoilRoot>
接受道具作为initializeState?: (MutableSnapshot => void)
签名。
能够初始化 Recoil State 所以我想使用这个道具,但我不明白如何制作MutableSnapshot
对象。
另一方面,虽然Snapshot
更容易获得useRecoilSnapshot()
。
javascript - 当原子状态更新到以前的值时,React Recoil 选择器不会触发其获取
我通过自己的一个快速项目开始学习 React 和 Recoil。一个具有按钮的单页网站,简而言之,每个按钮都会进行 REST 调用,并使用返回的数据创建一个表。
单击按钮时,它会更新一个存储给定按钮的 URL 的原子。选择器订阅此原子并触发对 API 的异步 REST 请求。从那里,返回的数据被处理成一个表。
在第一次单击每个按钮时,一切都按预期工作。调用特定的 URL 并生成表。问题是,如果第二次单击按钮,则会显示先前获取的数据。我不确定我是否遗漏了一个重要步骤,并且调试并没有真正向我透露任何信息。
原子类:
选择器类:
包含按钮的 NavBar 类:
生成表格的表格类:
更新:我通过放弃使用选择器并混合钩子和原子来获得类似的功能来解决这个问题,如下所示:
虽然我不觉得这很理想。
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
代码:
javascript - Recoil atom 的默认值可以是对象吗?
我可以将 Recoil 原子的默认值设置为对象吗?
例如:
然后将其设置为:
reactjs - 如何从反冲的atomFamily中获取所有元素?
我第一次玩反冲,不知道如何从 atomFamily 中读取所有元素。假设我有一个应用程序,用户可以在其中添加餐点:
我可以如下初始化一顿饭:
我如何阅读已添加到此 atomFamily 的所有项目?
reactjs - React / Recoil - setAtom 新值何时可用?
我试图了解 React Recoil 以及更新的原子值何时可用,或者如何使新值在应用程序中垂直和水平传播。
例如,如果我调用了一个原子userState
并且我更新了它的一个属性,例如avatar_url
,如果我在 setUser 之后立即对其进行控制台,则该值不是新值。
reactjs - 我可以在没有 React 的情况下使用 Recoil 吗?
我想为一个不使用任何框架的应用程序尝试 Recoil,只使用 Web 组件。Redux 可以在没有框架的情况下使用(我怀疑 Redux Toolkit 也可以),但我看到的所有 Recoil 示例都涉及 React。
我可以在没有 React 的情况下使用 Recoil 吗?
reactjs - 有没有办法在 react-testing -library 中测试组件之前初始化多个原子状态?
现在我正在初始化单个原子状态,如下所示
我正在尝试errors
在上面的代码中添加另一个原子。
这是正确的用法吗?
javascript - React/Recoil:一旦在主应用程序中设置状态,就不能在组件内再次设置?
从 App.js 文件中的可加载项设置状态后:
setFocusState
从组件内调用函数Point
似乎不起作用:
当我console.log(focusState)
在 function 中添加 switch 语句的相关部分时handleKeyEvent
,它表明每次setFocusState
从 Point 组件中调用时,没有任何变化,并且值focusState
保持与初始设置相同。我猜这就是为什么setCursor
不通过useEffect调用的原因。
有人可以建议这里出了什么问题吗?需要改变什么
setFocusState
实际修改从组件focusState
内调用时的值Point
- 为此,通过实际修改光标位置
setCursor