javascript - 我如何在本机反应中访问组件的内部属性(标题)
问题描述
我想访问 return 之外的 title 属性,以便我可以将它传递给其他人,但我不知道如何访问组件的属性这里是我的自定义组件
import React, {Component} from 'react';
import { View, Text, StyleSheet } from 'react-native';
export const ClickableIcon = (props) => {
console.warn('hi')
return (
<TouchableOpacity onPress={props.onPress} >
<Text>{props.title}</Text>
</TouchableOpacity>
)
}
在这里,我正在使用该组件
import React from 'react';
import { View, Text, StyleSheet, } from 'react-native';
const Divisions = (props) => {
console.warn(title) **I want to access particular title of key 1**
return (
<View style={styles.block}>
<ClickableIcon onPress={props.onPress} title='ac service' key='1'
/>
<ClickableIcon onPress={props.onPress} title='babysitter' key='2'
/>
</View>
)
}
export default Divisions;
解决方案
您想title
在他的父亲中访问子组件的道具,而您声明值的第一刻title
是在子组件的渲染中。
所以你有两个选择,
第一个是用来ref
访问孩子在父亲处的财产。这种方法的优点是您仍然可以仅在渲染时声明标题,缺点是它复杂、反模式,并且 React 文档建议不要
第二个选项是titles
在渲染之前声明,并为这个数组渲染一个地图
const Divisions = (props) => {
const titles = [ { t: 'ac service', k: 1 }, { t: 'babysitter', k: '2' } ]
return (
<View style={styles.block}>
{ titels.map(title =>
<ClickableIcon onPress={props.onPress} title={title.t} key={title.k} />
)
}
</View>
)
}
现在titels
存在于父母
推荐阅读
- c# - 与剑道调度器有关?
- jquery - Laravel Datatables 导出 CSV 或 XLSX 是否有任何解决方案在我的浏览器崩溃(5000 多行)之前需要很长时间?
- android - 如何在活动的角落放置圆形图像关闭按钮
- python - 检查一个可以是持续时间或时间增量的变量是否大于 0?
- clojure - Clojure 是否具有在调用时执行主体功能的“不断”形式?
- jsf - 如何在jsf中格式化double
- parsing - 如果没有换行符,如何从 reader.ReadString 获取最后一行
- angular - 角度 - 如何处理重定向
- flutter - Flutter 不加载第一次加载失败的图片
- entity-framework-6 - 没有必填字段的 Code First 更新字段