reactjs - 反应过渡组和 nodeRef
问题描述
在我当前的项目中,我想使用和创建一个Popper
组件。react-popper
react-transition-group
但是,据我了解,当您StrictMode
在 React 中使用时,react-transition-group
需要一个nodeRef
道具。
以下是我当前Fade
使用的组件nodeRef
:
<CSSTransition
classNames="rp-fade"
in={inProp}
mountOnEnter
nodeRef={nodeRef}
timeout={250}
unmountOnExit
>
{(_: any, childProps: Record<string, unknown>) => {
return React.cloneElement(children, {
...childProps,
ref: nodeRef,
})
}}
</CSSTransition>
但是,当我使用react-popper
时,我需要向ref
popper 元素提供一个,但问题是这个引用被nodeRef
传递给子元素覆盖:
return React.cloneElement(children, {
...childProps,
ref: nodeRef,
})
下面是我的 popper 组件:
<Fade in={open}>
<div
className="rp-popper"
{/* This ref is overwritten by the nodeRef */}
ref={popperRef}
style={styles.popper}
{...attributes.popper}
>
{children}
</div>
</Fade>
那么,我怎样才能让用户在不破坏动画的情况下提供自己的参考呢?
解决方案
推荐阅读
- c - 使用 WinHTTP 传输不带标头的数据
- swift - 如何更改集合视图中的 UIbutton?
- python - 如何使函数的返回值可迭代?
- laravel - Laravel 资源丰富的路线顺序 - 重要吗?
- c# - 数据未输入到列表视图
- ruby-on-rails - ActiveJob 未出现在 Sidekiq 队列中
- javascript - 从 api 获取有关点击的某些信息,并在 10 次点击后停止
- javascript - 在 npm 上发布的 typescript 库的导出接口
- wordpress - Wordpress,在短代码中插入 URL
- ios - 适用于 iOS 的 Google Sheet API 的身份验证范围不足错误