问题标签 [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.

0 投票
1 回答
4642 浏览

javascript - useRef() 无效的钩子调用 [NextJs]

我正在尝试useRef()在 NextJs 项目中的函数组件主体内使用钩子,但仍然出现以下错误。我已经浏览了 React Hook 规则,但我找不到这个错误的原因,这不起作用。有人有想法吗?

错误:无效的挂钩调用。钩子只能在函数组件的主体内部调用。这可能由于以下原因之一而发生:

0 投票
1 回答
1526 浏览

reactjs - 如何从钩子反应组件中获取 TextField(Material-UI) 值?

我将 Material-UI 与 react 一起使用,具有如下组件:

我想获取 ref TextField 的值但未定义。如何获取 ref TextField 的值?

我已阅读以下答案: React: How to get values from Material-UI TextField components

但是表单按钮的这个答案,如果我没有表单怎么办?

0 投票
0 回答
195 浏览

reactjs - 在没有浏览器刷新的情况下渲染时,useRef 为 null

所以不幸的是我的组件有问题。所以让我们再解释一下。

我有一个div容器,里面有一些内容。这个容器有height: 100%风格overflow-auto。当用户转到相应的组件时,它会自动滚动到容器的底部。那么有什么问题呢?

所以问题是当用户通过<Link> or <Redirect> useRef返回 null 访问该组件时。我尝试使用useEffectdepref.current但仍然仅适用于页面刷新而不适用于Link等。

别说了,这是我的一些代码:

所以我做错了什么。请给我一些建议或提示。谢谢各位大侠指教!

编辑1:

我用与 in 相同的逻辑创建了一个函数,useEffect() 然后onLoad在我的上面添加了事件<div>来运行该自定义函数并且它可以工作。如果你知道一些其他的方法,请让我看看

例子:

0 投票
3 回答
452 浏览

javascript - 如何从父组件调用同一个子组件函数的多个实例

我知道使用 ref 可以从父组件调用子组件中的函数。但我的问题是我有多个子组件实例,我需要在所有子组件中调用相同的函数。

我的问题是,如果我在地图函数中渲染子组件,我应该怎么做?

0 投票
1 回答
90 浏览

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?

0 投票
0 回答
45 浏览

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>

0 投票
2 回答
691 浏览

reactjs - React hooks - 从父组件调度重置状态

这是我复制场景的应用程序,这里是代码和框中的演示

我有两个组件,Leagues(父)和Details(子)。

我在Details组件按钮中有一个实现的重置按钮示例

您可以在演示中看到清空团队统计数据的数组

我的问题是,我可以实现相同的按钮,但可以从 Details 组件和父组件Leagues中实现吗?实现它的方法是什么?

我想走这条路,但我做不到。

所以在我的Details.js

App.js

我收到此错误:'cleanValue' is not defined no-undef

这是我无法做出反应的事情吗?我怎样才能实现它?

0 投票
1 回答
142 浏览

javascript - 模拟点击动态渲染的 React 元素

我正在创建一个地理游戏,您应该在世界地图上单击特定国家 - 如果单击右侧,该国家会改变颜色,并且游戏会显示一个可供单击的新国家。如果玩家不知道,他可以点击一个按钮,它会告诉他正确的答案。为此,我想模拟一个单击事件,以便调用相同的 onClick() 函数,就好像您单击了正确的国家一样。

我正在使用 D3,世界地图由 svg 路径组成。下面是我认为可以使用 HTMLElement.click() 方法的代码:

然后我看了一些教程,这些教程说,出于某种我不完全理解的原因,您宁愿为此使用 React.useRef - 但在他们的所有示例中,他们在返回的元素上放置了一个“ref”值从 React 组件的开头开始,如下所示:

这显然不起作用,因为我的 svg 路径元素最初没有返回。所以我的问题是——无论是否使用 useRef,我怎样才能做到这一点?

以下是我看过的一些以前的问题,这些问题也没有帮助。 模拟反应元素上的点击事件 反应测试渲染器模拟点击元素 模拟点击反应元素

0 投票
2 回答
1974 浏览

javascript - React forwardRef: ref 和其他 props

父组件:

和孩子:

如果我想传递更多的道具而Child不是 justref怎么办?

我搜索了文档和教程,但一无所获;通过反复试验,我想这会奏效:

然后在Child里面,我可以得到这些道具(onClick,,, prop1prop2props

这就是我需要做的一切吗?通过把ref作为传递给孩子的最后一个道具?

如果我有多个按钮Child需要一个ref怎么办?

0 投票
1 回答
461 浏览

javascript - 反应元素位置的 UseRef 和 forwardRef 问题

我已成功连接我的组件Details.js以管理组件本身的状态,这些是步骤:

你可以在这里看到演示

详细信息.js

应用程序.js

它有效,演示在这里

我的问题是当我将这个元素从App.js移动到Leagues.js 时,正如您在演示中看到的那样(有两种情况)

联赛.js

71 号线

单击它时出现此错误=> TypeError 无法读取未定义的属性'cleanValue'

可能吗 ?如果是,我做错了什么,我该如何解决?