问题标签 [react-custom-hooks]

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

reactjs - 如何为当前的 useState 使用创建自定义钩子

我目前正在学习反应和自定义钩子,我得到了这个,不知道在这种情况下它应该如何有一个自定义钩子,应该返回什么,我必须返回什么?,任何帮助将不胜感激,谢谢你提前

可能的自定义钩子:

0 投票
1 回答
76 浏览

reactjs - 如何在自定义 React 钩子中使用 Apollo useMutation

我仍然无法将头绕在 Hooks 上。我经常遇到它抱怨我正在做的问题Invalid hook call
这一次,是尝试useMutation在自定义钩子中使用来自 Apollo 的钩子。
如果有人能告诉我我做错了什么,我将不胜感激。

组件(我在哪里调用我的自定义钩子)

定制挂钩

结果错误:

0 投票
1 回答
24 浏览

reactjs - 在 React 自定义 Hook 中没有 Hook 的 Apollo 变异

我在 React 组件中调用自定义钩子:

通过 onClick 事件启动:

自定义钩子包括以下内容:

当数据成功返回后,我想触发一个 Mutation,但是我不希望通过 useMutation Apollo 钩子来完成。

因此,我的问题是如何以非钩子方式触发这个突变,仍然允许我在这个自定义钩子中更新 Apollo 缓存响应?

我知道我可以简单地通过 Fetch 发出 HTTP 请求,但这不会给我在整个应用程序中使用的 inMemoryCache 优势。我必须在自定义挂钩中初始化 Apollo 吗?

欢迎任何想法或建议。

0 投票
1 回答
29 浏览

reactjs - 我可以在自定义挂钩中调用功能组件吗?这样的钩子可以是 .tsx,而不是 .ts 文件吗?

我做了一个定制的钩子,包裹着 Chakra 的定制钩子。Chakra UI 是一个组件库。

如您所见,我需要告诉 Chakra 使用我的 Toast 组件。问题是,可以在自定义钩子中调用功能组件吗?如果是这样,我需要将自定义挂钩文件的扩展名从 .ts 更改为 .tsx。也可以吗?

谢谢!

0 投票
0 回答
17 浏览

javascript - 建议:使用 onClick 和内联访问响应的 React Custom Hook

我已经开始在 React 中使用自定义钩子,创建以下内容:

钩子可以通过以下方式使用:

我们可以在声明的变量或 onCompleted 和 onError 中访问加载、数据和错误变量。我们还可以通过以下方式在线访问相同的数据:

以上所有内容都很好,但是,如果我遗漏了什么或做错了什么,那么任何建议都非常受欢迎。

0 投票
1 回答
55 浏览

reactjs - React - useEffect - useEffect 中未定义的变量

我有这种情况,我不知道为什么会发生..

我有一个自定义钩子,其中包含一个在执行另一个函数之前无法初始化的变量。

我认为这与同步情况无关,因为 console.log( '..', name ) 在执行 useEffect() 之前显示了变量的值,我还放了一个按钮来手动触发 useEffect 挂钩(使用另一个状态变量并在 onClick 函数中更改其值)并且该值也未定义。

我在变量上使用 useRef 解决了这种情况,并将其放入依赖数组中。

但是,为什么会这样?我不知道 React 如何管理变量的值。

谢谢!

0 投票
0 回答
14 浏览

reactjs - custom-fetch-hook 返回的值在组件 unmonts 后更新导致警告 Can't perform a React state update on an unmounted component

使用Axios自定义钩子

客户端api.js

所以问题是我有一个按钮显示组件 Showdata 切换一旦我关闭切换请求被取消但它仍然显示 useefffect 警告

警告:无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要解决此问题,请在 useEffect 清理函数中取消所有订阅和异步任务。

我已经阅读了axiosreactjs的文档,但我无法解决这个问题。 这是codesandbox的链接 请告诉我我的代码有什么问题以及如何解决这个问题。

0 投票
0 回答
17 浏览

reactjs - 组件状态在 OnChange 上的 nextJS 中设置为初始状态

不确定为什么每次 onChange 运行时的状态值都等于初始状态值。这意味着当我更改附加了此 onChange 的组件的值时,只有它的值被设置,其余的都未设置,因为这就是它们的初始值。使用的框架是nextJS。

0 投票
1 回答
197 浏览

reactjs - 当我的反应组件的状态没有改变时,如何重新触发我的反应组件中的自定义钩子?

我有一个用于从服务器获取数据的自定义钩子。它有3个参数,分别是pageNumber、pageSize和keyword。我知道如果我设置了这些参数中的一个或多个,钩子会在新状态下重新触发。但是在我的组件中,当我创建数据时有一个地方,所以一旦创建它就必须再次获取数据。但它的参数,如 pageNumber、pageSize 和关键字都没有更新。我只需要它再次运行,以获取新数据。我该如何做到这一点,而不改变我的状态?(在下面的代码中,'Adapter' 是一个 Axios 实例)

这是钩子:

这就是我在页面初始加载时在组件中使用它的方式。

我希望能够重新触发钩子,而不设置任何状态,因为它们没有改变,但是数据已经改变,所以它必须再次获取。

0 投票
0 回答
25 浏览

reactjs - 将 useRef 作为参数传递给自定义钩子

将 useRef 传递给自定义钩子的方法是什么?我正在创建一个自定义钩子以在用户到达带有 react-intersection-observer 的部分时触发动画,并且如果用户通过多个,则动画不会再次发生。

如果我像这样传递参考:useAnimation 参数:const useAnimation = (customRef)和来自 react-intersection-observer 的 setView 方法,如下所示:const { ref: customRef, inView: elementIsVisible } = useInView();我得到Parsing error: Identifier 'customRef' has already been declared.如果我删除参考:它会发生同样的事情。

如果我 console.log 我得到的 customRef 参数current: undefined

这是完整的代码:useAnimation:

这是我在组件中调用自定义挂钩的方式: