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

reactjs - 类型 'IConnectionState' 不可分配给类型 '{ connected: false; 类型:“无”;}'

所以,我认为我的打字机 linter 短路了,因为我一生都无法弄清楚为什么这个 linting 错误会不断出现。

下面是我的代码,你可以清楚地看到,应该没有任何后果。

如果有帮助,我正在使用反冲。但是查看反冲类型,RecoilState应该类型采用default赋予其选项对象的值的子类型。

我迷路了。

0 投票
1 回答
607 浏览

reactjs - Recoil:设置 atomFamily 时父状态不会更新

我有一个订阅 Recoil atomFamily 的 React 功能组件。目的是 atomFamily 将更新父状态中的一个项目,然后依赖于父状态的另一个组件将通过useEffect. 然而,这似乎并没有发生。为什么会这样?从它的样子(和我自己的实验)来看,使用 Recoil 选择器更改父状态的一部分应该会自动传播回父状态。

选择器状态项如下所示:

父状态项如下所示:

设置atomFamily后需要更新的组件如下:

0 投票
1 回答
4593 浏览

reactjs - 反冲:重复的原子键 - 在 nextjs

我确实在我的 nextjs 应用程序中使用了反冲。但是,如果我接下来运行(在开发或生产中没有区别),我会收到以下错误消息:

重复的原子键“companyData”。这是生产中的致命错误。但是,如果由于模块热更换而发生此警告,则忽略此警告是安全的。

这是我实现它的方式:

/src/stores/CompanyStore.js

我在某些组件中这样使用它:

我的组件.js

我不明白为什么会出现此错误消息。可能是由 nextjs 中的错误引起的,还是我以错误的方式实现了反冲?

0 投票
1 回答
1423 浏览

reactjs - 后坐力状态未正确更新

我有以下代码。

提交表单后,我正在调用 setValues 函数。当我在控制台记录此验证值时,它没有更新验证值。但是,如果我在提交处理程序之后控制台记录值,那么它会起作用并显示更新的值。另外,我只是注意到再次按下提交按钮后它可以工作。setValues 函数也不是异步的,需要一些时间才能完成。那么为什么会这样呢?我现在很困惑。提前致谢。

重要的

那些nidOrPassport、addressProof、recentPhoto等都是对象

0 投票
1 回答
2041 浏览

reactjs - 如何使用反冲为自定义钩子编写测试代码

我正在使用 Jest 为我的 Web 应用程序中的自定义挂钩编写测试代码。

它使用 Recoil 进行状态管理,但是当我运行npm run test.

这是错误信息。

这是测试代码。

这是自定义钩子代码

我知道为什么会发生错误,但我不知道RecoilRoot应该在哪里?

0 投票
1 回答
1622 浏览

javascript - React useEffect hook在recoil atom更新后不调用

我使用 recoiljs 作为我的反应项目的状态管理器,当一个反冲原子从另一个文件更改时,我的一个组件不会将其称为 useEffect。这是我从原子读取的主要组件。

这是我的原子文件

这是我提交的表格

如果您只想查看文件,github 在这里 主要组件是 src/components/MainDeadline.jsx , src/atoms/deadlinelist , src/components/InputForm.jsx

我的主要问题是当用户在表单中输入内容时,它应该更新状态,但主要组件没有更新。

请告诉我是否可以以任何方式改进我的代码这是我的第一个反应项目。

0 投票
1 回答
722 浏览

javascript - 反应功能和类组件是否呈现不同?

当我使用带有一些状态管理器的反应功能组件(我正在使用recoil.js)并尝试使用反应挂钩更新状态时,它仅在状态与原始状态不同时才调用useEffect。当我在讨论组件如何重新呈现的堆栈溢出时,他们正在谈论类组件,以及每次调用 setState 时它们如何呈现。这只是两个组件类型工作方式之间的区别还是我只是误解了它?

这是我对功能组件的代码测试:

运行这个 useEffect 只在状态改变的时候被调用,而不只是在 setTest 被调用的时候,这个人对类组件说的不是这样。

React 不比较状态数据。当调用 setState 时,它​​会将组件标记为脏(这意味着它需要重新渲染)。

这是否意味着如果我要将它作为一个类组件,它每次都会 conoslelog?

0 投票
1 回答
75 浏览

recoiljs - 有没有更简洁的方法来组织这个 recoilJS 状态?

我刚刚了解了recoilJS,并且一直在玩弄它,并且对我所做的是否被认为是“正确的”有疑问。我的代码有效,但感觉很奇怪。

我有以下 React 函数组件:

其中相关的原子和选择器定义为:

基本上,当游戏开始时,TimerPanel计时器显示的增量是1游戏进行中的每一秒。如果用户重置游戏 ( GameState.NEW),则timerCount重置为零。如果原子/选择器没有正确完成,则会出现竞争条件,即游戏状态和计时器计数将重置,但计时器仍在运行,并且仍会再更新TimerPanel一次。这就是为什么我在选择器的道具中有if块的原因。set

基本上,我担心我的timerCounter选择器是状态的美化过滤器/直通实体,timerCount我想知道是否有更好的方法来处理这个用例。

0 投票
1 回答
894 浏览

reactjs - 反冲原子打字稿默认未定义

我是 Recoil 的新手,现在遇到了问题。问题是我希望能够将原子默认值定义为未定义,因为我必须在开始时进行一些异步调用和更多设置,有时在我得到一些用户输入之前它可能是未定义的。所以我试图将原子定义为:

但我收到以下错误:“类型 'RecoilState' 不可分配给类型 'RecoilState<LocationInterface | undefined>'。”

一切都在我使用反冲值的其他地方工作,但我只在原子文件中收到上述错误。

有没有办法做我正在做的事情,或者我是否试图对 Recoil 做一些根本错误的事情?

提前致谢!

0 投票
1 回答
221 浏览

javascript - Recoil:将长期存在的客户端对象传递给选择器

来自react-redux/ redux-thunk,有一个很好的方法来实例化一个客户端对象,将它传递给 ThunkMiddleware,然后在 thunk 中检索它:

然后在我的thunk定义中:

在 Recoil 中,我看不到实现类似的方法:据我所见,文档中的示例假定原子/选择器的主体可以在没有任何外部实例化的上下文的情况下执行。

由于在设计 Recoil 时似乎不太可能不考虑这一点,我很好奇我在这里错过了什么?