问题标签 [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 投票
0 回答
731 浏览

reactjs - Material UI - 使用 React Hook 表单自动完成

我正在使用 Material UI 的自动完成功能构建一个表单,并使用反冲进行状态管理。我也在使用 react-hook-form。我需要满足以下条件:

  1. 需要预先输入,允许输入的第一个字母从 API 返回选项列表以显示在自动完成中。每个字母将返回一个不同的选项列表以供选择。
  2. 还需要允许 freeSolo 以便用户可以手动输入值
  3. 需要被要求并遵循模式来验证表单。

我正在使用 react-hook-form<Controller>来控制输入并允许验证等功能,在帮助文本中显示错误消息等。

问题:我在根据我输入的内容过滤掉选项以及允许 freeSolo 时遇到问题。当我输入一个新值时,选项列表不会过滤。弹出窗口保持打开状态。我还需要验证模式验证的输入更改。我已经尝试使用以下示例onInputChange来使用 react-hook-formuseFormsetValue手动设置字段的值并验证表单。( {shouldValidate: true})。下面的示例是我为自动完成创建的自定义、可重用组件,以及在其他父组件中使用该自定义组件。我希望我包含尽可能多的细节,但如果没有,如果您需要更多信息,请告诉我。任何帮助将不胜感激!

父组件:

自定义自动完成组件:

它看起来像什么:

在此处输入图像描述

0 投票
1 回答
491 浏览

reactjs - Testing a Recoil selector with async Query

I am using Recoil for state management and have problem testing my selector. It seems mocking a function inside a selector is not possible. My code is similar to the code below:

Now, I want to mock the return value of myDBQuery but it seems I cannot do that when using selector. I was wondering if there is any way to mock returned result of a function inside selector.

0 投票
1 回答
615 浏览

javascript - 由反冲状态触发的 useEffect 在 safari 中无法按预期工作

我想input type="file"在组件外部的状态发生变化时触发点击。

当更新状态作为 prop 传递并执行 useEffect 函数时,一切都按预期工作。

当更新状态被传递时,useRecoilState它似乎不起作用(但仅在 safari 中) - 它按预期触发 useEffect 但inputRef.current.click()不起作用。

这是提出问题的工作代码:https ://codesandbox.io/s/useeffect-recoil-trigger-vs-prop-w7lwq?file=/src/index.js:315-329

这是代码:

0 投票
2 回答
177 浏览

javascript - 使用反冲创建简单的状态切片

我有一个 api 请求,我喜欢将响应存储在 Recoil atom 中。
我试图弄清楚这样做的最佳方法是什么。
问题是我的选择器没有依赖项(原子),因为我的请求没有参数:

当我执行以下操作时,我收到信息错误: 错误

这就是我使用选择器的方式:

'222' 控制台已记录,但 '333' 从未记录。

我错过了什么?

0 投票
1 回答
238 浏览

reactjs - RecoilJS 的事件发射器模式

有没有一种模式或技术可以用来处理 Recoil 中的事件?

在 Saga 中,我们可以使用 emit 方法创建数据流。

我一直在努力思考如何在 Recoil 中实现这样的事情。

用于扫描蓝牙连接的设备。

0 投票
0 回答
74 浏览

reactjs - 您知道即使在重新加载后如何保持 useContext 值的更新?

在使用子组件更新 useContext 中定义的 useState 后,是否有办法保留该值(保存更新的值),即使它转换到另一个页面并重新加载?

在useContext中定义的名为A的UseState“初始值”,在子组件A中,将其改为“I changed it”。

在另一个子组件 B 中,我希望能够在 useContext 的 useState 中引用更新的“更改”,即使它被重新加载。useContext可以吗?

查了一下,觉得做一个叫做 Recoil persistence 的过程就好了,但是……

还是应该将其保存在本地存储中?我想保存一些个人信息,所以不太合适……

如果有人知道好的方法,请告诉我。

0 投票
1 回答
106 浏览

javascript - Redux:使用输入 onChange 更改状态

我正在使用RECOIL JS进行状态管理。由于recoil对api调用没有很好的支持,我需要切换回redux + thunk。

我需要在用户键入时更新我的​​表单状态(全局) 。

我使用反冲状态来实现:

我需要使用 redux 做同样的事情,当使用 redux 输入 changs 时,我无法找到在运行时执行此操作的方法。

有没有办法做到这一点?因为我能想到的唯一解决方案是在每次击键(onChange 事件)上调度一个动作,这不是最佳的。

另一个问题是,我们可以同时使用两者吗?我的意思是,recoil 用于全局状态,redux 用于 api 调用?

0 投票
1 回答
952 浏览

reactjs - 如何改变反冲选择器的状态

我正在尝试更改选择器中的状态,类似于正常状态更改,但我无法弄清楚我做错了什么。有人能帮我吗?

这是我的原子:

现在选择器不起作用

它在“bookState”上显示错误

'RecoilState<iBook[]>' 类型的参数不可分配给'RecoilState<({ value: number; title: string; } | undefined)[]>' 类型的参数。属性“__cTag”的类型不兼容。类型 '(t: iBook[]) => void' 不能分配给类型 '(t: ({ title: string; id: number; } | undefined)[]) => void'。参数“t”和“t”的类型不兼容。类型 '({ title: string; id: number; } | undefined)[]' 不可分配给类型 'iBook[]'。TS2345

这是在组件中工作的钩子,但我希望它在选择器中:

0 投票
1 回答
370 浏览

recoiljs - Recoil 的批量设置状态

如果作为用户正在执行的某些高级操作的一部分,我必须设置来自多个不同原子的状态,我希望在将整个状态设置为批处理时,任何受影响的原子的所有订阅组件仅重新渲染一次。Recoil可以做到这一点吗?

0 投票
2 回答
1129 浏览

javascript - 无法使用 .map() 分配给只读属性。使用 NextJs 反冲

在我只使用 nextJs 之前一切都很好,但是在我尝试使用 recoil 并尝试使用 .map() 为数组对象分配新值但出现错误之后

这是我的示例数组对象

这是示例状态 AllData

const allData = [ { id:1, value:"test1" }, { id:2, value:"test2" } ]

这是我的代码

例如我想像这样调用编辑功能

我希望我的新 allData 输出看起来像这样

我读过有人告诉我必须使用 .slice() 来创建新对象,但仍然不使用如何将 slice 与数组对象一起使用