javascript - 在平面列表项中未定义 React Native 对元素的引用
问题描述
我试图在渲染平面列表时获取元素的引用,但引用返回为未定义。请参阅下面的相关代码:
构造函数:
constructor(props) {
super(props);
this.modalRef = createRef();
}
渲染项:
_renderItem = ({ item }, context) => {
const modalRef = context.modalRef.current; // Why is context.modalRef.current null?
let onPress = () => alert("Something went wrong...");
return (
<View style={styles.item}>
<ListItemCard
id={item.id}
value="Some value.."
onPress={onPress()}
/>
</View>
);
};
在渲染函数中:
屏幕上的模态:
<Modal
ref={this.modalRef}
text="Some text.."
onPressClose={() =>
this.modalRef.current.close()
}
/>
平面列表:
<FlatList
data={data}
renderItem={item => this._renderItem(item, this)}
keyExtractor={(item, index) => index.toString()}
/>
解决方案
modalRef.current
是null
因为引用是在组件安装时分配的Modal
。我假设在_renderItems
调用函数时未安装组件。
我建议您在不呈现组件的函数中使用 ref,例如事件处理程序。那里的ref
变量应该有对组件的引用。
推荐阅读
- syntax - 如何在使用正确语法的同时模拟 if then then 语句的结果?
- angularjs - 如何为 spring boot 生成的 XSRF-Token cookie 设置 max-age
- netlogo - NetLogo 行为空间不包括我的品种之一
- r - 创建数据框,根据列表的第一个元素进行匹配
- excel - 如何根据单元格的值更改单元格的多个格式参数?
- bash - 如何查找包含给定文件的所有文件?
- php - wordpress 增强的媒体库查询的图像没有出现在 polylang 中
- java - 如何使用 sqrt(-x) 处理 NaN?
- python-3.x - 在:LinearFunction (Forward) 中执行了无效操作
- python - 有没有办法在 Python 中动态构建列表