问题标签 [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 - 反应:如何获得一个元素高度,消失并以新大小出现
抱歉标题混乱
我正在向论坛添加编辑功能,我需要获取主题的标题元素高度和宽度,以便我单击编辑按钮,组件重新呈现,而不是标题,我们有一个具有标题宽度的文本输入和高度。问题是我只能正确执行一次。如果我在不刷新的情况下第二次编辑并保存,则下一个文本输入具有第一个编辑的标题宽度/高度
这是我的代码:
所以我知道使用 useEffect 的这种方式我只设置了一次 titleSize 状态,我试图直接将 titleSize 属性改变为:
不强制重新渲染,但我得到相同的结果,我可以得到第一次加载的标题元素高度和宽度。
有人知道更好的方法吗?我到达了网络,但不幸的是我没有得到预期的答案(可能是因为我没有使用正确的关键字来获得正确的答案)
任何帮助真的很感激!
reactjs - 当我需要将引用传递给另一个组件时,如何确保加载它?
我有一个组件,它基本上呈现如下:
我这样做是因为Child
' 的渲染逻辑取决于包含 div 的“边界客户端矩形”——子级使用父级的左/上位置来使用 JavaScript 计算自己的绝对位置。通过传入containerRef
to Child
,我可以访问containerRef.current.getBoundingClientRect()
它的各种位置属性。
问题是在初始渲染时,containerRef
没有设置。直到第二次渲染才设置。
我该如何 A.) 强制第二次渲染,B.) 强制将其设置在第一次渲染上(可能是不可能的),C.) 以不同的方式解决这个问题,以便孩子可以访问其父母的容器?
也许如果Child
在它自己的子 HTML 上设置一个 ref,我可以简单地使用命令式代码来访问该节点的父节点?
javascript - 如何使用 ref react native 进入屏幕顶部
如何使用 react-native 转到屏幕顶部或屏幕中的其他元素?我需要为此使用 ref 吗?
请注意,我有来自外部的滚动视图,所以我不能使用滚动视图方法
我的代码很少:
例如,我想转到屏幕中的第一个元素:
没有scrollView如何处理?(再次,因为我不能放置滚动视图,因为我有从外部包裹它的滚动视图)
reactjs - 反应中循环中的元素的useRef
使用 React,我有一个以这种方式静态声明的 ref 列表:
然后将 refs 传递给动画函数,一切正常;现在事情发生了一些变化,我使用地图创建了列表项,我不再能够正确地引用元素;我试过类似的东西:
但是我传递给动画函数的数组是空的(我猜是因为函数在 useEffect 钩子中被调用,而 LiRefs 还不是 useRef)我也知道
哪个不起作用我可以尝试的任何其他解决方案?
javascript - 反应 useRef 钩子:useRef 值不被 useState 函数使用
在我问这个问题之前,我自然地做了一个搜索,发现了这个很棒的帖子:
在我解释了一些序言之后,我将在一秒钟内展示我的实现。
本质上我的问题是 useState 中的更新函数没有同步更新,它在它获得的数据中落后了。
向 useState 函数传递一个包含 id、lat 和 lang 的对象。
currentCoords,应该镜像标记数组。如您所见,它是“设置”第二个。
所以我都知道,因为 setState 和 useState 是异步的,你不能依赖正在更新的状态。
现在这是我尝试过的:
我在useEffect
依赖项中包含了一个数组,该数组已被字符串化以在它(useMarkers)更改时启动(不用担心数组永远不会超过两个项目!)
我想通过保存一个显式引用,然后将它传递给可以工作的更新程序,但它没有:(
这是 setState 函数,将其保存到本地存储:
react-native - 如何使用酶模拟 useRef 钩子和 react-native
我想为我的 React-native 应用程序编写测试。我的父组件将执行子组件中的方法。我的子组件正在使用 Hooks forwardRef、useImperativeHandle、Ref 如下所示
childs.tsx
我的父组件正在捕获'ref'调用
这使我可以从父级中调用“切换”和“关闭”方法。现在,我不明白如何在我的测试中做同样的事情
我的父母-test.tsx:
我的 React 和 RN 版本是:
谁能解释我应该如何实现这一目标?
reactjs - 使用 useRef addEventListener
我正在使用useRef
但addEventListener
不起作用,这里有什么问题吗?
父组件:
子组件:
reactjs - 如果与 setInterval、react-typescript 一起使用,则为 useRef 键入
我在我的应用程序中做一个简单的动画。
因为flipInterval.current
我得到“类型'超时'不可分配给类型'未定义'”。所以我检查了如何使用 Timeout 类型,我看到人们正在使用但那不起作用。
useRef<number>()
这次我也传递了数字,我得到“类型'超时'不可分配给类型'数字'”
这也不起作用
reactjs - 参考未定义在模态组件材料 ui 中
我怎样才能防止canvasRef.current
在这里未定义?似乎材料 ui 中的模态组件导致画布参考出现问题。我怎样才能防止这种情况发生?我通过设置节点值尝试了 ref 回调canvasRef.current
,但仍然没有运气。
html - 如何定义类型
我正在尝试使用 React.js 中的 ref 来控制视频的播放/暂停状态,我的代码可以工作,但是我正在尝试解决 tslint 错误:
这会导致
所以我尝试更改const video = useRef(null)
为const video = useRef(new HTMLVideoElement())
我得到:
TypeError: Illegal constructor
我也试过:const video = useRef(HTMLVideoElement)
这导致: