问题标签 [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 - Material UI - 使用 React Hook 表单自动完成
我正在使用 Material UI 的自动完成功能构建一个表单,并使用反冲进行状态管理。我也在使用 react-hook-form。我需要满足以下条件:
- 需要预先输入,允许输入的第一个字母从 API 返回选项列表以显示在自动完成中。每个字母将返回一个不同的选项列表以供选择。
- 还需要允许 freeSolo 以便用户可以手动输入值
- 需要被要求并遵循模式来验证表单。
我正在使用 react-hook-form<Controller>
来控制输入并允许验证等功能,在帮助文本中显示错误消息等。
问题:我在根据我输入的内容过滤掉选项以及允许 freeSolo 时遇到问题。当我输入一个新值时,选项列表不会过滤。弹出窗口保持打开状态。我还需要验证模式验证的输入更改。我已经尝试使用以下示例onInputChange
来使用 react-hook-formuseForm
并setValue
手动设置字段的值并验证表单。( {shouldValidate: true}
)。下面的示例是我为自动完成创建的自定义、可重用组件,以及在其他父组件中使用该自定义组件。我希望我包含尽可能多的细节,但如果没有,如果您需要更多信息,请告诉我。任何帮助将不胜感激!
父组件:
自定义自动完成组件:
它看起来像什么:
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.
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
这是代码:
reactjs - RecoilJS 的事件发射器模式
有没有一种模式或技术可以用来处理 Recoil 中的事件?
在 Saga 中,我们可以使用 emit 方法创建数据流。
我一直在努力思考如何在 Recoil 中实现这样的事情。
用于扫描蓝牙连接的设备。
reactjs - 您知道即使在重新加载后如何保持 useContext 值的更新?
在使用子组件更新 useContext 中定义的 useState 后,是否有办法保留该值(保存更新的值),即使它转换到另一个页面并重新加载?
在useContext中定义的名为A的UseState“初始值”,在子组件A中,将其改为“I changed it”。
在另一个子组件 B 中,我希望能够在 useContext 的 useState 中引用更新的“更改”,即使它被重新加载。useContext可以吗?
查了一下,觉得做一个叫做 Recoil persistence 的过程就好了,但是……
还是应该将其保存在本地存储中?我想保存一些个人信息,所以不太合适……
如果有人知道好的方法,请告诉我。
javascript - Redux:使用输入 onChange 更改状态
我正在使用RECOIL JS进行状态管理。由于recoil对api调用没有很好的支持,我需要切换回redux + thunk。
我需要在用户键入时更新我的表单状态(全局) 。
我使用反冲状态来实现:
我需要使用 redux 做同样的事情,当使用 redux 输入 changs 时,我无法找到在运行时执行此操作的方法。
有没有办法做到这一点?因为我能想到的唯一解决方案是在每次击键(onChange 事件)上调度一个动作,这不是最佳的。
另一个问题是,我们可以同时使用两者吗?我的意思是,recoil 用于全局状态,redux 用于 api 调用?
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
这是在组件中工作的钩子,但我希望它在选择器中:
recoiljs - Recoil 的批量设置状态
如果作为用户正在执行的某些高级操作的一部分,我必须设置来自多个不同原子的状态,我希望在将整个状态设置为批处理时,任何受影响的原子的所有订阅组件仅重新渲染一次。Recoil可以做到这一点吗?
javascript - 无法使用 .map() 分配给只读属性。使用 NextJs 反冲
在我只使用 nextJs 之前一切都很好,但是在我尝试使用 recoil 并尝试使用 .map() 为数组对象分配新值但出现错误之后
这是我的示例数组对象
这是示例状态 AllData
const allData = [ { id:1, value:"test1" }, { id:2, value:"test2" } ]
这是我的代码
例如我想像这样调用编辑功能
我希望我的新 allData 输出看起来像这样
我读过有人告诉我必须使用 .slice() 来创建新对象,但仍然不使用如何将 slice 与数组对象一起使用