javascript - 我需要将子组件的 ref 传递给 javascript 中的父组件
问题描述
所以,我一直在一个网站上工作,而且我是 react-spring 的新手,所以,我遇到了这个问题:我有一个主要的 App.js 组件,我在其中组装了所有其他组件,我还有另一个名为 CharAnim 的组件.jsx 在我的“src/components”文件夹下。
charAnim 对特定动画使用useTrail ,我需要在我的 App.js 组件中使用它。我在 App.js 组件中有另一个弹簧动画,我想将它与 CharAnim 组件中的动画链接起来。
为此,我需要在 charAnim 组件中获取动画的 ref var。我怎么做?请帮忙
charAnim 内部
const newTrail = useTrail(charArr.length, {
ref:self_animStyle_ref, //I have set this to const self_animStyle_ref = useRef(); which i need to pass to my app.js
to:{transform:`translateX(0px) translateY(0px)`,opacity:1},
from:{transform:`translateX(${xTrans}px) translateY(${yTrans}px)`,opacity:0},
config:config.gentle,
});
解决方案
您可以在父级(App
)中创建 ref,并将其传递给CharAnim
组件(我使用过ref forwarding,但不是必须的),然后您可以useChain()
在父级中使用。
示例(未测试):
const CharAnim = forwardRef((props, ref) => {
const newTrail = useTrail(charArr.length, {
ref,
to: {transform:`translateX(0px) translateY(0px)`,opacity:1},
from: {transform:`translateX(${xTrans}px) translateY(${yTrans}px)`,opacity:0},
config: config.gentle,
});
return (
// JSX
)
});
const App = () => {
const charAnimRef = useRef();
const appAnimRef = useRef();
useChain([charAnimRef, appAnimRef])
return (
<CharAnim {...otherProps} ref={charAnimRef} />
);
};
推荐阅读
- scikit-learn - train_test_split 与 StratifiedShuffleSplit 中的分层参数
- cadence-workflow - 使用 Cadence CLI 工具时,如何将复杂对象作为输入传递?
- android - 离子反应本机-> js 通信
- react-native - Process 'command 'npx.cmd'' 以非零退出值完成 1 React native build 问题
- node.js - 为什么我的 Node.js 本地模块导入不一致?
- midi - 使用 MIDO 将和弦写入文件
- webrtc - 安装 npm 包后访问应用程序
- javascript - 避免代码重复的辅助函数
- powershell - 检查一个值是否存在于一个 csv 文件中,并使用 Powershell 将静态文本添加到另一个 csv 字段
- ssl - TLS 协商失败,证书与主机不匹配。,代码:0