问题标签 [react-forwardref]

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 回答
5435 浏览

javascript - 使用 forwardRef 反应总是更新子组件,即使使用备忘录

所以我有一个 DatePicker ChildComponent我需要refParent访问它forwardRef。基本上一切正常。

但是有一个问题。

每次我在 Parent Other ChildComponents上更新与DatePickerChild没有任何关系的内容时, DatePicker 仍在呈现,即使它不应该呈现。

我试图删除 ref 从父级到子级的传递,然后每次我对要解决的其他组件进行更新时,该组件都不再重新渲染。

我已经通过使用优化开始使用回调记忆,useCallback但仍然没有运气。

下面是我的代码:

日期选择器.tsx

我不会只显示我的ParentComponent中的每个代码我传递给 DatePicker 的 props 和 refs。

我错过了什么吗?谢谢你的帮助。

0 投票
1 回答
184 浏览

reactjs - 容器组件上不存在 ref

我正在尝试通过父组件的连接组件(容器)从子组件调用函数。

当我尝试引用子组件时出现错误Property 'ref' does not exist on type 'IntrinsicAttributes & Pick<{ results: {}[]; }, never>'.

对不起,即将出现的代码墙,我试图尽可能地修剪代码。

这是父组件:

容器组件:

最后是 Searchbox 组件

谢谢您的帮助。

0 投票
2 回答
2265 浏览

reactjs - 聚焦单选按钮时反应 useRef / forwardRef 未按预期工作

我在这里整理了一个小演示: https ://codesandbox.io/s/bold-meitner-r3wzq?file=/src/App.js

当我单击按钮以显示并专注于我的第一个单选按钮时 - 我的单选样式未应用。虽然,如果您紧接着按空格键,它会聚焦正确的元素。

奇怪的是,如果我在 1ms 超时后集中注意力,它会按预期工作。显然,这更像是一个黑客而不是一个解决方案......

我觉得我在这里遗漏了一些非常简单的东西,任何帮助都会很棒!

谢谢!!

或者 - 这是复制所需的所有代码:

0 投票
1 回答
515 浏览

reactjs - 当我使用 useContext 挂钩时,为什么包裹在 forwardRef 中的功能组件会收到空引用?

我有一个sidebarCart组件,基本上是一个购物车组件,它被包裹在forwardRef钩子中,并包含useImperativeHandle以将函数传递给父级 App。在我引入useContext钩子之前一切正常,现在sidebarCart中的 refs 变为空,这是什么奇怪的行为?

我正在谈论的参考是cartContainerpageShdowCover 我发现当我停止我的 nodejs 服务器时,这个问题就消失了。

这是sidebarCart组件。

0 投票
2 回答
547 浏览

javascript - React v16 – 通过包装组件将 ref 从子级传递给父级

我有一个现有的组件层次结构,如下所示:

这一切都很好,但是现在我需要有条件地添加一个包装器组件,它包装<Child>组件以添加一些特殊情况的道具。

基本上我想要的是这样的:

我被困在如何将reffrom 从Child后面Wrapper传递到Parent,所以无论是否存在Parent都可以访问Child's ......refWrapper

0 投票
1 回答
482 浏览

reactjs - 扩展一个 React 样式的组件

我正在运行样式化组件的 v5,并且在扩展样式化组件时遇到了一些问题。我将在下面显示代码。

我有一个 Heading 组件,它返回一个包含 StyledHeading 的 React.FC。然后,在另一个文件中,我试图扩展 Heading. 但是,执行此操作时,标题组件甚至似乎都没有运行。我在组件中放置了一个控制台日志,但它没有呈现。

标题

用法

任何建议都会非常棒,因为我现在感觉很困难。谢谢!

0 投票
1 回答
707 浏览

typescript - 反应本机中的Typescript forwardRef错误

我有入职和幻灯片组件。我将 ref 作为道具从带有 forwardRef 的入职组件中滑动组件。它工作正常,但打字稿给我一个错误

我的组件如下所示

错误是这样的;类型 '((instance: ScrollView | null) => void) | 上不存在属性 'current' MutableRefObject<ScrollView | 空>'。我该如何解决这个问题?谢谢。

0 投票
1 回答
238 浏览

javascript - 失败的道具类型:提供给“字段”的道具“组件”无效。安装 mui v4 后

迁移到 Material ui v4 并收到此错误

失败的道具类型:component提供给的道具无效Field。在字段中(由 TextField 创建)

哪个指向 redux 表单域组件

我相信在查看文档时它与 React.forwardRef 有关

试过了

1.)

Redux 表单指向forwardRef : boolean [optional] 添加时,问题仍然存在

2.)

component= {React.forwardRef((props, ref) => <renderTextField innerRef={ref} {...props} />)}

这是无效的。

0 投票
2 回答
63 浏览

javascript - Forward Ref 将当前值设为 null

我正在尝试在我的演示项目中实现正向 Ref,但我面临一个问题。来自 forward ref 的 current 的值是 null,但是一旦我重新渲染我的 NavBar 组件(通过发送一个 prop),我就会得到 current 的值。

我基本上需要从 NavBar 组件向下滚动到 Home 组件中的部分。可以通过直接提供 href 属性并传递 id 来完成。但我想了解 forward ref 的工作原理以及这种方法。

有人可以帮我吗?

这是我的代码。

0 投票
1 回答
120 浏览

javascript - 正确键入返回带有 forwardRef 的组件的 HOC 组件

我正在尝试制作一个 HOC,它返回一个带有 forwardRef 的组件,但不知道如何键入它这是代码

但是我得到了两个错误之一InputComponent

另一个在Input.Number

如果有人想尝试一下,这里有一个代码框链接:https ://codesandbox.io/s/dazzling-shape-rwmmg?file=/src/Input.tsx:0-959