问题标签 [use-state]
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.
reactjs - 使用 useEffect() 钩子在 Jest 中测试函数
我基本上是在学习 Jest,我必须为 useEffect() 钩子编写一个测试用例,该钩子基于 flag[counter] 呈现,并在内部检查字段是否存在 localStorage 值。
有人可以帮助我编写测试用例/为内部调用 isLocalstoragePresent() 方法的 UseEffect 提供指导。提前致谢。
javascript - useState 变量不是删除函数中的最新版本,React
我有一个包含问题字段的 div 列表。对于每个按钮单击,我都会添加一行新的问题字段,并在状态中记住整个列表以及有多少行。我尝试添加一个删除按钮,但是当我的删除功能时,状态变量的值似乎是从创建行时记住的。我该如何解决这个问题,以便我可以访问 HandleDelete 函数中的完整列表?
javascript - Javascript和React在数组中设置数组状态并使用扩展运算符
我使用 react 并想创建一个项目数组,然后使用扩展运算符,但我在设置它时遇到了麻烦。
收到错误:TypeError:传播不可迭代实例的无效尝试
我有一个按钮,它将添加额外的集合数组newArray
到mediaArray
. 但是因为我试图遍历mediaArray
,所以我想确保正确的集合进入正确的 mediaArray。我希望这是有道理的
所以我最终会有 1 组 mediaArray 和 1 组
另一个带有另一组集合的 mediaArray
等等...
最终我想要newArray:
javascript - 即使延迟(5 秒)调用函数后,函数内部的反应状态也不会改变
在反应中我正在使用功能组件,我有两个功能(getBooks)和(loadMore)
getBooks
从端点获取数据。但是,当我在函数loadMore
内部单击按钮时调用函数getBooks
(loadMoreClicked)没有改变,即使在延迟(5秒)调用它之后,它也会使用以前的状态。但是当我loadMore
再次调用时,状态会发生变化,一切正常。
有人可以解释为什么最初调用 (getBooks) 时的 (loadMoreClicked) 没有更新,即使在延迟 5 秒后调用它也是如此。
reactjs - React hooks,从 prop 声明多个状态值
一般来说,我对 React 和 React hooks 还是很陌生,
我正在为我的最终项目构建一个反应应用程序,我想让一些组件(本示例中的高级搜索)尽可能通用,这意味着我想传递“dataFields”并且组件应该使用唯一的状态值更新源自那些数据字段。
我知道我可以使用一般状态并使用数组将更改存储在其中,但我读到这是不好的做法。
这就是我现在所拥有的:
我尝试使用它来实现相同的目标:
正确的做法是什么?有吗?
reactjs - 设置状态时如何将方法应用于字符串,反应钩子
我试图在设置字符串时拆分它。React 给出错误“TypeError:未定义”,如果我尝试对其应用方法(如 string.split("_"))
但如果我不尝试应用该方法,则字符串会正确显示。锄头可以实现在设置状态之前应用方法吗?
另外,我是否正确使用了 useEffect ?(3次,每次等待一个setSate申请另一个)
reactjs - 如何在createContext中为TypeScript初始化useState的set函数?
我有一个Provider
通过两个提供状态变量及其相应设置器的contexts
.
Provider
看起来像这样:
通过自定义钩子,我使setBookedBatch
其他组件可用:
尝试使用该setBookedBatch
功能时,在给定组件中出现以下错误:
错误:
由于函数的setteruseState
是我没有创建的函数,所以创建上下文的时候不知道怎么初始化:
这样 TypeScript 就不会抱怨了。
- 如何知道 setter 函数的初始值?
- 如果我不提供任何类型,如何避免 TS 抱怨 null 值?
javascript - 为什么我收到以下 React Native 警告:Can't perform a React state update on an unmounted component
我正在尝试构建一个 React Native 应用程序,但对 React/RN 生态系统来说还是个新手,所以我可能只是误解了我遇到的问题的一些明显问题。
我有一个应用程序,其中很多页面的结构如下:
NavComponent
加载具有以下元素的可切换导航菜单TouchableOpacity
:
我遇到的问题(也许这不是问题,而是 React/RN 的工作原理)是,如果我从屏幕 #1 开始,打开导航,转到屏幕 #2,再次打开导航,然后返回到屏幕#1,即使屏幕#1 再次出现,屏幕#1 的实际渲染函数似乎也没有被再次调用,因为NavComponent
这是每个屏幕渲染的一部分,当我尝试再次从屏幕 #1 打开导航,我收到以下警告:
警告:无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要解决此问题,请取消 %s 中的所有订阅和异步任务。%s,一个 useEffect 清理函数...
同样,也许我的应用程序一开始就有缺陷,但本质上,当我从导航从一个屏幕转到另一个屏幕时,我总是希望新屏幕从头开始重新渲染(包括最初的 Ajax 数据调用) .
这是屏幕渲染函数的一个更充实的示例(它们都遵循相同的基本模式):
例如,如果我console.log
在上面的渲染函数的开头添加了一个,它在屏幕第一次加载时被调用,但是如果我转到屏幕#2,然后通过导航组件返回到屏幕#1,则console.log
不是'不再输出。为什么?
对于它的价值,我正在使用标准navigation.navigate('ScreenName')
从NavComponent
一个屏幕转到另一个屏幕。
任何有关如何修复警告(和/或更好地设计应用程序)的建议,以便我可以在每个页面上都有该导航,我们将不胜感激。谢谢你。
reactjs - useState 接收输入数据并发布到控制台
仍然是 React 的初级人员,我正在尝试检测来自前端的输入并使用 useState 收集输入数据并通过控制台发布。我遵循了 React 自己的教程,但我无法做到这一点。这可能是我忘记的小事,但我已经坚持了好几天了。请帮忙。
javascript - 通过对象搜索后响应组件的更新状态
我有一个从 reactIcons npm 包https://www.npmjs.com/package/react-icons输出的对象我正在使用 sanity studio从其中一个文件夹中导入所有内容import * as ReactIcons from 'react-icons/fa'
,我创建了一个文本输入搜索到的值并运行一个搜索函数,该函数对我从 reactIconsfa
文件夹中获取的对象的值运行包含,并记录匹配的值。现在我想获取这些值并使用useState()
Howerver 更新反应组件我收到以下错误Uncaught ReferenceError: setIcon is not defined
,并且 SetIcon 是 useState 数组中的 setter 函数。到目前为止,这是我的代码