问题标签 [use-ref]
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 - useRef() 无效的钩子调用 [NextJs]
我正在尝试useRef()
在 NextJs 项目中的函数组件主体内使用钩子,但仍然出现以下错误。我已经浏览了 React Hook 规则,但我找不到这个错误的原因,这不起作用。有人有想法吗?
错误:无效的挂钩调用。钩子只能在函数组件的主体内部调用。这可能由于以下原因之一而发生:
reactjs - 如何从钩子反应组件中获取 TextField(Material-UI) 值?
我将 Material-UI 与 react 一起使用,具有如下组件:
我想获取 ref TextField 的值但未定义。如何获取 ref TextField 的值?
我已阅读以下答案: React: How to get values from Material-UI TextField components,
但是表单按钮的这个答案,如果我没有表单怎么办?
reactjs - 在没有浏览器刷新的情况下渲染时,useRef 为 null
所以不幸的是我的组件有问题。所以让我们再解释一下。
我有一个div
容器,里面有一些内容。这个容器有height: 100%
风格overflow-auto
。当用户转到相应的组件时,它会自动滚动到容器的底部。那么有什么问题呢?
所以问题是当用户通过<Link> or <Redirect>
useRef
返回 null 访问该组件时。我尝试使用useEffect
depref.current
但仍然仅适用于页面刷新而不适用于Link
等。
别说了,这是我的一些代码:
所以我做错了什么。请给我一些建议或提示。谢谢各位大侠指教!
编辑1:
我用与 in 相同的逻辑创建了一个函数,useEffect()
然后onLoad
在我的上面添加了事件<div>
来运行该自定义函数并且它可以工作。如果你知道一些其他的方法,请让我看看
例子:
javascript - 如何从父组件调用同一个子组件函数的多个实例
我知道使用 ref 可以从父组件调用子组件中的函数。但我的问题是我有多个子组件实例,我需要在所有子组件中调用相同的函数。
我的问题是,如果我在地图函数中渲染子组件,我应该怎么做?
javascript - useRef 还是 DOM api?
我的头脑中有一个困惑,源于 react docs 提到不要过度使用 useRef:https ://reactjs.org/docs/refs-and-the-dom.html#dont-overuse-refs 。
在我目前的反应编码风格中,我使用 dom api 来操作 dom 而不是 useRef 钩子,因为我制定了仅在绝对需要时才使用 useRef 的规则,但我无法解释为什么我必须用 dom api 替换 useRef。或者在这种情况下我应该使用Ref?
reactjs - 如何在 React 中找到当前引用
我试图找出当前的 ref 是什么。这背后的原因是,每当用户尝试进入不是当前部分的部分时,我都可以触发弹出窗口。
我有部分:
在我的导航里面我有这样的链接
最后我有弹出窗口:
然后在 jsx 的返回中,我像这样调用每个部分:
我想要setOpenPopup
真实的任何时候section pressed IS NOT current.section
所以我正在考虑创建一个 setRef 状态,我可以在其中保存当前部分,然后在每个<a>
导航链接中调用它。
像这样的东西:<li><a onClick={IF REF PRESSED IS NOT THE CURRENT REF SHOW POPUP} href="#section1">Section</a></li>
javascript - 模拟点击动态渲染的 React 元素
我正在创建一个地理游戏,您应该在世界地图上单击特定国家 - 如果单击右侧,该国家会改变颜色,并且游戏会显示一个可供单击的新国家。如果玩家不知道,他可以点击一个按钮,它会告诉他正确的答案。为此,我想模拟一个单击事件,以便调用相同的 onClick() 函数,就好像您单击了正确的国家一样。
我正在使用 D3,世界地图由 svg 路径组成。下面是我认为可以使用 HTMLElement.click() 方法的代码:
然后我看了一些教程,这些教程说,出于某种我不完全理解的原因,您宁愿为此使用 React.useRef - 但在他们的所有示例中,他们在返回的元素上放置了一个“ref”值从 React 组件的开头开始,如下所示:
这显然不起作用,因为我的 svg 路径元素最初没有返回。所以我的问题是——无论是否使用 useRef,我怎样才能做到这一点?
以下是我看过的一些以前的问题,这些问题也没有帮助。 模拟反应元素上的点击事件 反应测试渲染器模拟点击元素 模拟点击反应元素
javascript - React forwardRef: ref 和其他 props
父组件:
和孩子:
如果我想传递更多的道具而Child
不是 justref
怎么办?
我搜索了文档和教程,但一无所获;通过反复试验,我想这会奏效:
然后在Child
里面,我可以得到这些道具(onClick
,,, prop1
)prop2
。props
这就是我需要做的一切吗?通过把ref
作为传递给孩子的最后一个道具?
如果我有多个按钮Child
需要一个ref
怎么办?