问题标签 [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.
javascript - 用 setState 赋值的问题
刚开始使用 React 并且在尝试更改 Textfield 以更新状态时遇到了一些麻烦。使用使用 useState 设置初始状态的功能组件。
我确定我只是错过了一些简单的东西......但最终放弃并寻求帮助。
这是功能组件的完整代码:
对于表单组件:
当 handleChange 函数运行时,它不会替换目标属性,而是创建一个以原始值作为名称的新属性,即
目的是用文本输入替换值“字符串”。
reactjs - 为什么使用 React Hooks useState() 的计数在两个数字之间交替?
下面是一个使用useState()
. 它工作正常,除非+
单击按钮,然后数字可以交替出现7001
,7000
然后在一些数字之间快速闪烁。
实际上,在不点击 的情况下+
,该数字表现良好,但最高可达 8000 或 9000 左右,然后它可能会开始在某些数字之间闪烁。为什么会这样,如何解决?
PS初步调试发现是:好像Counter()
被调用了多次,每次都设置了一个Interval Timer。所以“神奇地”,似乎useState()
只运行了一次——出于某种未知和神奇的原因——或者它运行了不止一次,但每次都返回完全相同的内容,因为某种神奇的机制。0
第一次真的是这样的初始值。当它在useState(0)
未来的时候,count
不是0
......我们不想要那个,但它也不是那么实用(就像在数学函数中一样)。
reactjs - React Hooks 中的 useState() 如何知道它是哪个 Component 实例?
React 文档说:
React 如何将 Hook 调用与组件关联起来?
React 跟踪当前呈现的组件。由于 Hooks 的规则,我们知道 Hooks 只能从 React 组件调用(或自定义 Hooks——也只能从 React 组件调用)。每个组件都有一个内部“存储单元”列表。它们只是 JavaScript 对象,我们可以在其中放置一些数据。当你调用 useState() 之类的 Hook 时,它会读取当前单元格(或在第一次渲染期间对其进行初始化),然后将指针移动到下一个单元格。这就是多个 useState() 调用各自获取独立本地状态的方式。
首先……这个“记忆细胞”是什么?我们可以自己打印出来看看它的价值吗?
其次,该函数只有一个实例(Counter()
如下例所示)。所以如果我们<Counter />
在 DOM 中渲染两次,一次 to <div id="root1">
,第二次 to <div id="root2">
,函数如何Counter()
知道哪个是哪个?
javascript - 使用 useState React Native 将获取数据传递给组件
我是 React Native 的新手。实际上这是我的第一个应用程序。
我一直在尝试将数据从 Fetch 传递到组件,但没有运气。我已经上下左右研究了谷歌,尝试了数百万种东西,但仍然没有成功。
这是我的 App.js
这是我的 index.js 文件
我经常收到 TypeError: undefined is not an object (evalating 'props.content.first')
我尝试了数百万种方法,但大多数时候这是我看到的错误。如果我执行 console.log of state 我得到未定义或空的。
reactjs - 你可以在单个功能组件中多次调用 React 的 useState 和 useCallback 吗?如果是这样,它是如何工作的?
我在 React 官方文档或 blagosphere 上还没有找到任何提及这一点。
我认为当你有多个状态变量时,你可以而且通常应该这样做:
这是允许和鼓励的,而不是使用一个包含字段和useState
的无所不包的对象调用一次?如果允许并鼓励它,如何知道它何时被调用是指已经存储还是已经存储?state
foo
bar
useState
foo
bar
我也有基本相同的问题useCallback
。我想知道,如果我useCallback
在同一个组件中调用两次以创建两个不同的回调,如何useCallback
知道我的意思是引用之前定义的函数与创建一个新的函数,如果引用一个已经使用过的函数,它需要返回 memoized版本,它怎么知道两者中的哪一个?特别是如果两个回调具有相同的依赖项列表?
reactjs - 如何在使用状态挂钩更新状态时覆盖具有相同键的对象
我想在选择新过滤器时更新状态。初始状态显示我瞄准的对象结构。例如,我添加了一个过滤器选择(例如“f2”),每个过滤器的标签是固定的,所以我们可以忽略它,但值可能是“va”。这很好,但是当我想将“f2”的值更改为“vb”时,我现在在我的状态 {“f2”:“va”} 和 {“f2”:“vb”} 中有两个条目,而我宁愿第一个被第二个覆盖。
我尝试调用 setFilterValues 两次(一次将条目映射到我的条件)来解决问题,但后来我什至根本没有更新状态:
我对反应有点陌生,所以也许我没有得到更新功能组件状态的基本知识。有人可以帮我吗?谢谢你!
javascript - React Hooks 上的 useState 不更新数组
我已经尝试了很多东西,但似乎无法理解为什么 setTypes 不会更新“类型”数组?
请查看 console.log 并注意不同的响应。
我要做的是加载类型列表,在本例中为“帖子”、“页面”和“案例”,然后根据当前“类型”呈现帖子列表。默认类型是“发布”。
如果我将 [types] 添加到 useEffect. 我终于得到了值,但组件不停地呈现。
感谢大家的意见。很多人都指出了这个问题,因为我们设置状态并不意味着它会立即设置,因为它是异步的。
那我们如何解决这个问题呢?不管是什么原因,我们如何完成它?如果我们不知道它何时可用,我们如何在任何时间点使用我们的状态并根据我们的状态执行计算?我们如何确保我们等待我们需要的任何东西,然后使用我们期望的值?
javascript - 使用 useState 有条件地更新状态的一部分
如果新信息对象的名称与状态中的名称相同,我正在尝试更新我的状态以包含新信息对象。例如....
当新信息:
匹配现有状态的名称:
目标是我可以只合并属性,结果是:
我在第一场比赛中得到的最接近的作品,但随后的比赛会产生一个数组数组,就像这样(三个项目匹配,所以应该有一个包含 3 个成本和服务项目的数组):
我使用以下代码实现了上述目标:
javascript - 有没有办法改变 React 中输入的类型?
所以我尝试了以下方法,我似乎无法更改输入的类型。因此,相同的输入可以是文本或密码类型,但我无法在两者之间切换。这是一个语义 UI 输入。(来自语义-ui-react)
在我的 JSX 中:
初始化时:
事件发生后:
useEffect 用于确保状态已更新,其他所有钩子都按预期工作。这可能是一种安全预防措施吗?你能想出一种避免创建新输入的方法吗?
谢谢
reactjs - 创建 onClick 函数时,我的变量尚未更新,因为 useEffect 最后运行
我对 ReactJS 完全陌生。请善待,我真的找不到我的问题的答案。
在 useEffect 中,我更新了我的变量(这是一个对象数组),在我的 onClick 函数中,我想再次更新我的变量。
由于 useEffect 在我创建我的 onClick 函数后运行,我的变量在 onClick 上仍然为空。我需要能够在我的 onClick 函数中访问我更新的变量。
在创建 onClick 函数之前,如何先更新 useEffect 中的变量?