javascript - 如何从函数返回之前定义的 useRef 变量?
问题描述
我正在渲染一个列表。在特定按钮上,我想要一个参考。有没有办法存档?或者有什么解决办法?
const plusParent = useRef(null);
const plusChild = useRef(null);
const minusParent = useRef(null);
const minusChild = useRef(null);
const detectRef = (button, comp) => {
switch (button) {
case '+':
return comp === 'parent' ? plusParent : plusChild;
case '-':
return comp === 'parent' ? minusParent : minusChild;
}
};
{row.map((button) => {
return (
<View>
<TouchableOpacity
ref={() => detectRef(button, 'parent')}
>
<Text>{button}</Text>
</TouchableOpacity>
</View>
);
})}
如果我尝试访问我的 useRef 变量之一,我会得到空值。
解决方案
目前你ref
最终成为一个匿名箭头函数。只需删除该附加函数包装器并直接调用该函数以返回结果。
{row.map((button) => {
return (
<View>
<TouchableOpacity
ref={detectRef(button, 'parent')}
>
<Text>{button}</Text>
</TouchableOpacity>
</View>
);
})}
推荐阅读
- node.js - 无法从节点服务器设置 cookie -> 应用程序
- python - 聊天机器人推理层返回相同的值
- python - Discord.py 任务循环运行过于频繁且未完成
- ios - 如何检查后台 NFC 标签读取是否可用?
- typescript - TypeScript forEach 如何推断联合的类型并更改返回类型
- user-interface - 为什么我的 2D 纹理会随着我的相机移动?
- android - 测试奖励广告未显示 - 广告加载失败:LoadAdError(代码:3,域:com.google.android.gms.ads,消息:无广告配置。)
- amazon-web-services - 如何在 AWS 的 Kibana 中创建明细?
- java - 我必须使用我的 spring-boot simple rest Api 的 docker 容器展示负载均衡器演示
- apm - APM 中的跨度是什么?