问题标签 [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 - Can you invoke the same useState hook within the same function more than once?
So amidst refactoring my class based chatbot component to use react hooks I came across a problem with the useState hook overwriting the object in the state. This lead to only the bot responses showing up in the UI. When I chat with the bot, a flash of the user input shows in the UI then is overwritten by the chatbots response. Here is the code:
Is it possible to write useState like this, twice within the same async function? If not how do you propose I refactor this code so that the messages state returns an array of alternating objects such as:
javascript - 使用元素的子文本来设置/更新变量
有谁知道我可以对<li>
以下组件中的元素做什么,以便单击其中一个<li>
元素会将 activityType 设置为该特定元素中包含的文本<li>
?例如,第一个<li>
是“教育”。单击那个,我希望发生这种情况:setActivityType('education')。
有谁知道我可以<li>
对以下组件中的元素做些什么,以便单击其中一个<li>
s 将设置activityType
为包含在特定内容中的文本<li>
?例如,第一个<li>
是“教育”。单击那个,我希望发生这种情况:setActivityType('education')
类型菜单.js:
更新:
我接受了给出的建议,并将每个<li>
元素的子文本放入一个数组中。然后我映射到该数组,以创建个人<li>
,给每个人一个 onClick,理想情况下,将设置activityType
为<li>
我点击的文本。然后,我想根据activityType
动态设置的任何内容进行 API 调用。使用下面的代码,我离解决这个问题又近了一步,但我仍然无法按activityType
原样控制/更新代码。该 const 以空字符串的形式返回,这导致我的 API 调用被关闭。有什么建议么?
类型菜单.js:
reactjs - React,如何在不重绘的情况下更新状态,或者如何在没有 useState(和 useRef)的情况下触发 useEffect,或者如何停止无限循环
情况
- 我想根据图像的高度重新分配网格(使用砌体方法)
- 这些图像是延迟加载的
我想要的是
- 加载图像时,它们会发送一个标志,该标志使砌体逻辑重新分配网格,每个人都很高兴
- 然后当用户滚动时,加载更多图像,再次触发标志,砌体再次调整网格
怎么了
*const [myState, setMyState] = use State(0)
- 加载图像时,我
setMyState(1)
- 在砌体逻辑中,我有一个
useLayoutEffect(() =>{}, [myState])
所以当状态改变时,我调整网格 - 然后我用 重置状态
setMyState(0)
,这样当加载新图像时它会再次触发useLayoutEffect
- 但是,当我重置状态时,它会重新绘制图像,因此图像会再次加载并再次触发
useLayoutEffect
,这会再次重置状态,从而创建无限循环 - 如果我不重置状态,则循环停止
- 但是,当使用滚动加载新图像时,
setMyState(1)
不会更改任何内容并且useLayoutEffect
不会触发
所以我现在卡住了
这是一个简化的代码
尝试 1
我无法更改 中的状态useLayoutEffect
,所以我只会在加载图像时更改内容,而不是再次更改
问题
当我滚动并加载更多图像时,我无法再触发 useLayoutEffect
尝试 2
如果我不想重绘,但想触发 useLayoutEffect,我可以使用useRef
而不是useState
但是codeandbox已经警告我imageLoaded.current
不会导致组件的重新渲染(即使我或多或少想要这个?)
所以最后,我看到imageLoaded.current
加载新图像时增加,但useLayoutEffect
没有触发
reactjs - useState 在执行作为道具传递的函数时导致缓慢
我有一个反应本机应用程序,其中我有一个颜色配置,一种主题,我有一个特定的屏幕,我传递了一个类似 props 的函数,它被执行并更新全局颜色,但是它会导致大约一秒的延迟
这是我的应用
这是我进行颜色配置的屏幕
任何帮助或解释发生的事情我将不胜感激。
javascript - 在 React 中使用 useState 存储对象列表并添加到该列表中
我必须使用 React 中的 useState 挂钩将对象列表存储在数组中。我有带有 onChange 的输入字段,我得到了它的值并尝试在列表中的一个对象中放置/更新它。输入在一个类似结构的表格中,每一行代表一个集合。每列是代表次数、rpe 和重量。这些值属于每个集合,需要保存在数组中的一个对象中。目前,当您编辑时,它不会保存您所做的所有事情,而只会保存您在该行中所做的最后一件事。
reactjs - useState 不更新状态
我正在尝试使用函数内的输入搜索过滤用户searchByName
。我设法在copyUsers
变量中得到正确的结果,但不幸的是它并没有反映状态内部的变化。
忘了提一下,使用带有钩子和打字稿的裸 React-App。
例如,我在输入中写入“p”并在copyUsers
变量中接收正确的过滤数组,但然后我将其推入它不更新的状态。
附上截图以更好地了解情况:
我尝试过的是 setFilteredUsers(copyUsers):
setFilteredUsers(() => [...filteredUsers, copyUsers]);
setFilteredUsers(() => copyUsers);
主要成分:
reactjs - 在重新渲染时从 Props 设置值后,React useState 未更新
我是新来的反应和使用钩子
我想要实现的是单击提交按钮后,获取必要的预期值,然后通过将状态设置为新对象,将所有字段重置为空白。
我能够获得必要的值,并且我希望将状态值设置为新的默认对象会重置文本字段的值,但似乎我失败了。
有人会告诉我为什么会发生这种行为吗?
顺便说一句:使用 material-ui 文本字段
该设置位于:https ://github.com/blackmo18/react-usestate-error.git
这是我的组件结构:
每个组件的伪代码:
数据类
注册组件
PersonDetails 组件
学生部分
守护者组件
react-hooks - 将类组件转换为 useState
这是一个使用 state 和 setState 的类组件,但我想使用 useState。此外,除了能够使用功能组件而不是类基组件之外,还有什么好处?
至今...
javascript - 将数据推送到数组后更新 Sate 时,React 功能组件未呈现
我正在尝试创建一个动态输入表单,用户可以在其中添加新输入。
问题
组件在更新时未呈现,State
但是当我打开Model
存在于使用 aState
打开/关闭它的同一组件中的 a 时,数组中的所有推送元素一次显示。
我没有编写代码Modal
以便更容易阅读代码
我的代码
JSX
reactjs - setState 不能通过 useState 中的 onChange 工作
我正在使用 useState Hook 存储表单以在用户单击时管理视图。界面显示良好,但我无法在输入字段中输入值。谁能告诉我为什么?谢谢。