reactjs - 如何将 REF 与运动库 REACT 一起使用
问题描述
我开始涉足 React。目前我有3个组件。一个父组件,它返回一个具有内部子级的子级。
<Parent>
<Child>
<InnerChild></InnerChild>
</Child>
</Parent>
我的目标是,当 innerchild 执行一个动作时,它会执行一个回调并执行 child 中的一个方法。
在此链接之后,我尝试对子调用子方法进行 REF 从父
Child.js(使用运动库https://github.com/framer/motion)
export const Positioner = React.forwardRef(({
zIndex = 200,
}, ref) => {
const [posZIndex, setIndex] = React.useState(zIndex);
const toggleZIndex = () => {
alert("child action triggered")
};
return (
<motion.div style={styles} {...framer} ref={ref}>
{children}
</motion.div>
);
})
父.js
export const Parent = props => {
const childRef = useRef();
const handleMenuToggleCallback = (isOpen) => {
console.log("handleMenuToggleCallback is called");
this.childRef.toggleZIndex (isOpen);
}
return
<Child ref={childRef}>
<InnerChild handleCallback={handleMenuToggleCallback}/>
</Positioner>
}
内部孩子成功执行回调。但不幸的是 childRef 不起作用。我可以看到这个错误No ref found. Ensure components created with motion.custom forward refs using
React.forwardRef`
请问如何正确通知我的子功能组件。
解决方案
推荐阅读
- postgresql - 根据行差异在PostgreSQL中合并行(相同的值)
- python - 是否可以根据下拉选择显示另一个 ipywidgets 小部件?
- php - MySql 使用 PHP 保存带有奇怪字符的移动提交的文本
- java - 如何在java中访问一个空数组
- node.js - nodeJS的AWS S3 403访问被拒绝问题
- sql-server - 报表中显示varbinary图像数据的水晶公式
- python - 如何从 .txt 文件制作 Python 字典?
- node.js - OneM2M 认证服务器
- r - 只保留最近的日期
- postgresql - PGAdmin4 中的 ALTER 表