React 门户功能组件

React Portal Functional Component

我在使用门户呈现输入字段时遇到问题。 当我更改输入的值时,它会失去焦点。 我认为这是因为状态更改时重新渲染。

https://codesandbox.io/s/zk0w1jv6rp

有人知道解决办法吗?

更新

有没有办法重用Bar-Componet?假设我可以添加类似键的东西 属性,这样 React 就知道它是同一个组件并且可以重用它。

这是因为每次 HelloReact 组件重新渲染时,您都在定义一个新的 Bar 组件并创建一个新的 Bar 组件,这不是一个好的方法。

简单的解决方案是使用 autoFocus,因此每次创建新的 Bar 组件时,它都会聚焦输入元素。

Working code.

更好的方法是在 HelloReact 组件之外定义 Bar 组件,并在 props 中传递 valueonChange 事件处理程序。在这种情况下,您不需要使用 autoFocus.

Example.