问题标签 [react-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 投票
10 回答
223631 浏览

javascript - React hooks - 清除超时和间隔的正确方法

我不明白为什么当我使用setTimeout函数时,我的反应组件开始到无限的 console.log。一切正常,但 PC 开始滞后。有人说这个函数在超时改变我的状态和重新渲染组件,设置新的计时器等等。现在我需要了解如何清除它是正确的。

清除不同版本的代码无助于:

0 投票
1 回答
12877 浏览

reactjs - TypeError: Object(...) is not a function React

我正在从这个频道学习 React 。最近,我从这里偶然发现了 React Hooks 。因此,我尝试将基于类的组件转换为基于钩子的组件。这是我的基于类的组件:

这是我转换后的组件: https ://codesandbox.io/s/n0lw4wo550?module=%2Fsrc%2FAddNinja.js

但我收到以下错误:

在此处输入图像描述

0 投票
1 回答
5423 浏览

javascript - “无法导入 useState,因为反应中没有 useState 导出”(使用 React Hooks 的流程)

我希望我不是在重复一个问题。我见过这个:TypeError dispatcher.useState is not a function when using React Hooks,但是我的应用程序运行良好,它只是 Flow 中的一个错误:

我正在使用16.7.0-alpha我的 react 和 react-dom 依赖项:

这是我从 Flow 中得到的唯一错误,其他 React 元素都很好。我的依赖项有问题吗?

这是我文件的顶部:

编辑:我还进入了我的 node_modules/react 文件夹并验证了该useState功能确实在那里。

0 投票
1 回答
2881 浏览

reactjs - React Hooks,useReducer 无法获取状态

我正在制作一个简单的组件,尝试使用 useEffect 和 useReducer 钩子。一切似乎都运行良好,只是数组中的所有项目都没有真正进入组件。我已经在各种函数中完成了一些 console.log 语句,我可以看到 API 调用成功,并且数据在事件下的函数范围内可用。然而,所有呈现的是一个空盒子。我的代码是:

我应该在 useReducer 内部调用 useEffect 吗?我可能会搞砸一些本应以异步方式发生的事情。

0 投票
3 回答
2182 浏览

reactjs - 我可以用钩子替换上下文吗?

有没有办法用新的反应钩子 API 来替换上下文数据获取?

如果您需要加载用户配置文件并几乎在任何地方使用它,首先您创建上下文并导出它:

然后导入顶级组件,加载数据并使用提供程序,如下所示:

然后在其他一些组件中导入配置文件数据,如下所示:

但是有一种方法可以使用钩子导出一些函数,这些钩子将具有状态并与任何想要获取数据的组件共享配置文件?

0 投票
11 回答
370889 浏览

javascript - 如何仅使用 React useEffect 调用加载函数一次

useEffect React 挂钩将在每次更改时运行传入的函数这可以优化为仅在所需属性更改时才调用。

如果我想调用一个初始化函数componentDidMount而不是在更改时再次调用它怎么办?假设我想加载一个实体,但加载函数不需要来自组件的任何数据。我们如何使用useEffect钩子来制作这个?

使用钩子,这可能看起来像这样:

0 投票
3 回答
1475 浏览

javascript - React 16.7 有 State Hook,我可以在任何情况下使用函数组件而不是类组件吗?

React 16.7 有 State Hook,所以我可以在任何情况下使用函数组件而不是类组件,对吗? https://reactjs.org/docs/hooks-state.html

0 投票
5 回答
42143 浏览

javascript - 在功能组件中存储非状态变量

下面是两个做几乎相同事情的 React 组件。一是函数;另一个是一个类。每个组件都有一个Animated.Value带有异步侦听器的异步侦听器,该侦听器会_foo根据更改进行更新。我需要能够_foothis._foo在经典组件中一样访问功能组件。

  • FunctionalBar不应该_foo在全局范围内有多个FunctionalBar.
  • FunctionalBar不能_foo在函数范围内,因为_foo每次FunctionalBar渲染时都会重新初始化。也不应该处于状态,因为组件在更改_foo时不需要渲染。_foo
  • ClassBar没有这个问题,因为它在组件的整个生命周期中一直处于_foo初始化状态。this

如何在不将其置于全局范围内的情况下_foo在整个生命周期中保持初始化?FunctionalBar

功能实现

经典实现

0 投票
6 回答
74853 浏览

reactjs - React useReducer 异步数据获取

我正在尝试使用新的 react useReducer API 获取一些数据并停留在我需要异步获取它的阶段。我只是不知道如何:/

如何将数据获取放在 switch 语句中,或者这不是应该如何完成的方式?

我试图这样做,但它不适用于异步;(

0 投票
1 回答
3209 浏览

javascript - 设置 React useReducer 的最佳方法

我设置了这个 reducer.js 文件来使用 React 的 useReducer

https://reactjs.org/docs/hooks-reference.html#usereducer

getReducer现在我可以通过不同的渲染函数获取状态和调度:

传递dispatch函数并让其他组件调用 props.dispatch 确实感觉很奇怪。有没有更干净的方法来设置它?

如果你想尝试不同的模式,我在这里设置了一个 repo: https ://github.com/dancrew32/hooks