react-hooks相关内容
我有一个组件,使用react钩子可以在用户单击打开样式的折叠/手风琴面板时更改其文本.我遇到的问题是,这种逻辑会同时影响所有3个折叠面板的文本,而不仅仅是打开面板.我提供了一个指向代码沙箱的链接以突出显示此行为,并且在下面提供了代码 Code Sandbox https://codesandbox.io/s/q-56761334-style- crash-extra-bdcbz imp
..
我两周前才开始学习React,所以我仍然发现一些概念很困难.我从构建CRA到将其转换为NextJS并选择使用带有钩子的上下文API进行状态管理.我现在正在使用下拉列表过滤列表中的文章.当我选择某种类型的文章时,列表会正确过滤,但是当我返回到下拉列表时,只有原始选项和当前选项一起出现.当我单击原始选项时,所有列表项都消失了.我想防止下拉菜单中的选项发生变化,同时还允许过滤与设置其他过滤器同时进行(例
..
尝试在NextJS中使用React Hooks时,我继续收到以下错误: 只能在函数组件的主体内部调用钩子. 此问题仅在Windows上出现,并且在Mac上可以正常使用. 这是一个有据可查的问题,我对许多建议的解决方案都感到困扰,包括: React或React DOM的多个版本 在next.config.js 中修改Webpack设置 链接到特定的节点模块包装 以下
..
查看React的useMemo 文档.他们说要在需要计算昂贵的计算时使用它. 此优化有助于避免在每个渲染上进行昂贵的计算. 我查看了他们提供的memoized 链接,据我了解,您是可以将其视为缓存. 我不是计算机科学领域的专家,但是我知道备忘录是计算 fibonacci 我仍在试图更好地理解为什么以及如何使用useMemo,但是我仍然不清楚一些事情. 什么被认为是ex
..
我正在尝试从Material-UI创建一个文本字段,以更新类组件中的状态.发生错误,并返回“无效的挂接调用"错误. Material-UI是否必须始终与React Hooks一起使用,还是可以不与它一起使用? import React, { Component } from "react"; import ReactDOM from "react-dom"; import TextField
..
我想在React中使用Formik,Material-ui,功能组件和getState挂钩实现多步骤表单. import React, { useState, Fragment } from 'react'; import { Button, Stepper, Step, StepLabel } from '@material-ui/core'; import FormPartA from
..
我正在尝试使用滑块ui元素创建自定义钩子.我的目标是能够从父元素访问滑块值,以便更新其他一些ui部分. 但是,似乎滑块值未正确更新:当用户尝试拖动滑块工具提示时,它仅移动了一步.似乎在调用useEffect之后不再跟踪鼠标事件. 我该怎么做才能解决此问题并保持平稳的拖动行为? 这是我的代码(沙盒): index.js import React from 'react'
..
我想使用useStyle设置类Component的样式.但这很容易实现.但我想改用Component.但是我不知道该怎么做. import React,{Component} from 'react'; import Avatar from '@material-ui/core/Avatar'; import { makeStyles } from '@material-ui/core/st
..
我是React的新手,现在我想在表中显示一些记录,现在出现了此错误.请帮帮我. 无效的挂钩调用.挂钩只能在主体的内部调用 功能组件.可能发生以下情况之一 原因: 1.您的React和渲染器版本可能不匹配(例如React DOM) 2.您可能违反了《钩子规则》 3.您可能在同一应用程序中拥有多个React副本.有关如何调试和调试的提示,请参见 解决此问题. import React,{C
..
我正在尝试使用lodash在函数组件中的throttle方法,例如: const App = () => { const [value, setValue] = useState(0) useEffect(throttle(() => console.log(value), 1000), [value]) return ( s
..
我正在尝试为我正在开发的游戏创建基于箭头的键盘控件.当然,我试图与React保持同步,所以我想创建一个功能组件并使用钩子.我为越野车组件创建了 JSFiddle . 除了我同时按下许多箭头键外,它几乎可以按预期工作.然后,似乎未触发某些keyup事件.也可能是“状态"未正确更新. 我喜欢这样: const ALLOWED_KEYS = ['ArrowUp', 'ArrowDo
..
以下是不带钩子的登录组件.该组件具有两个输入字段和一个提交按钮.我们如何才能修改该组件以使用钩子并将其转换为可以使用状态的功能组件? import React from 'react'; import { userService } from '../services/user.services'; class Login extends React.Component { c
..
在JS中,两个对象不相等. const a = {}, b = {}; console.log(a === b); 所以我不能将useEffect(反应钩子)中的对象用作第二个参数,因为它始终被视为false(因此它将重新呈现): function MyComponent() { // ... useEffect(() => { // do something
..
我有一个使用useContext的组件,然后其输出取决于上下文中的值.一个简单的例子: import React, { useContext } from 'react'; const MyComponent = () => { const name = useContext(NameContext); return
{name}; }; 使用来自rea
..
我的React应用程序具有一个组件,该组件从远程服务器获取要显示的数据.在预钩时代,componentDidMount()是必须去的地方.但是现在我想为此使用钩子. const App = () => { const [ state, setState ] = useState(0); useEffect(() => { fetchData().then(setState);
..
前言/描述 我正在尝试将React的新挂钩功能用于我正在构建的电子商务网站,并且从我的购物车组件中解决了一个问题。 我认为讨论的前言与我试图保持全球状态的事实相关通过使用多个Context组件进行模块化我有一个单独的上下文组件,用于我提供的项目类型,以及个人购物车中项目的单独上下文组件。 问题 我遇到的问题是,当我发送一个操作以将组件添加到我的购物车时,减速器将运行两次,就
..
当我偶然发现 useRef时,我正在浏览钩子文档 。 看看他们的例子...... function TextInputWithFocusButton(){ const inputEl = useRef(null); const onButtonClick =()=> { //`current`指向已挂载的文本输入元素 inputEl.current.focus(); };
..
我正在尝试使用React useEffect 和 useState 的事件发射器,但它总是得到初始值状态而不是更新状态。如果我直接调用事件处理程序,即使使用 setTimeout ,它也可以工作。 如果我将值传递给 useEffect()第二个参数,它会使它工作,但这会导致每次值改变时都会重新订阅事件发射器(由击键触发)。 我做错了什么?我试过 useState , useRef ,
..
我正在尝试新的 React Hooks 的 useEffect API,它似乎永远在无限循环中继续运行!我只希望 useEffect 中的回调运行一次。这是我的参考代码: 点击“运行代码片段”,看到“Run useEffect”字符串无限打印到控制台。 function Counter(){const [count,setCount] = React.useState (0); Re
..
我在我的组件中有这个: const [pendingMessages,setPendingMessages] = React.useState([]); React.useEffect(function(){ ref.current.addEventListener('send-message',onSendMessage); return function(){ ref。
..