问题标签 [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.
javascript - React hooks - 清除超时和间隔的正确方法
我不明白为什么当我使用setTimeout
函数时,我的反应组件开始到无限的 console.log。一切正常,但 PC 开始滞后。有人说这个函数在超时改变我的状态和重新渲染组件,设置新的计时器等等。现在我需要了解如何清除它是正确的。
清除不同版本的代码无助于:
reactjs - TypeError: Object(...) is not a function React
我正在从这个频道学习 React 。最近,我从这里偶然发现了 React Hooks 。因此,我尝试将基于类的组件转换为基于钩子的组件。这是我的基于类的组件:
这是我转换后的组件: https ://codesandbox.io/s/n0lw4wo550?module=%2Fsrc%2FAddNinja.js
但我收到以下错误:
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
功能确实在那里。
reactjs - React Hooks,useReducer 无法获取状态
我正在制作一个简单的组件,尝试使用 useEffect 和 useReducer 钩子。一切似乎都运行良好,只是数组中的所有项目都没有真正进入组件。我已经在各种函数中完成了一些 console.log 语句,我可以看到 API 调用成功,并且数据在事件下的函数范围内可用。然而,所有呈现的是一个空盒子。我的代码是:
我应该在 useReducer 内部调用 useEffect 吗?我可能会搞砸一些本应以异步方式发生的事情。
reactjs - 我可以用钩子替换上下文吗?
有没有办法用新的反应钩子 API 来替换上下文数据获取?
如果您需要加载用户配置文件并几乎在任何地方使用它,首先您创建上下文并导出它:
然后导入顶级组件,加载数据并使用提供程序,如下所示:
然后在其他一些组件中导入配置文件数据,如下所示:
但是有一种方法可以使用钩子导出一些函数,这些钩子将具有状态并与任何想要获取数据的组件共享配置文件?
javascript - 如何仅使用 React useEffect 调用加载函数一次
useEffect React 挂钩将在每次更改时运行传入的函数。这可以优化为仅在所需属性更改时才调用。
如果我想调用一个初始化函数componentDidMount
而不是在更改时再次调用它怎么办?假设我想加载一个实体,但加载函数不需要来自组件的任何数据。我们如何使用useEffect
钩子来制作这个?
使用钩子,这可能看起来像这样:
javascript - React 16.7 有 State Hook,我可以在任何情况下使用函数组件而不是类组件吗?
React 16.7 有 State Hook,所以我可以在任何情况下使用函数组件而不是类组件,对吗? https://reactjs.org/docs/hooks-state.html
javascript - 在功能组件中存储非状态变量
下面是两个做几乎相同事情的 React 组件。一是函数;另一个是一个类。每个组件都有一个Animated.Value
带有异步侦听器的异步侦听器,该侦听器会_foo
根据更改进行更新。我需要能够_foo
像this._foo
在经典组件中一样访问功能组件。
FunctionalBar
不应该_foo
在全局范围内有多个FunctionalBar
.FunctionalBar
不能_foo
在函数范围内,因为_foo
每次FunctionalBar
渲染时都会重新初始化。也不应该处于状态,因为组件在更改_foo
时不需要渲染。_foo
ClassBar
没有这个问题,因为它在组件的整个生命周期中一直处于_foo
初始化状态。this
如何在不将其置于全局范围内的情况下_foo
在整个生命周期中保持初始化?FunctionalBar
功能实现
经典实现
reactjs - React useReducer 异步数据获取
我正在尝试使用新的 react useReducer API 获取一些数据并停留在我需要异步获取它的阶段。我只是不知道如何:/
如何将数据获取放在 switch 语句中,或者这不是应该如何完成的方式?
我试图这样做,但它不适用于异步;(
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