【发布时间】:2018-09-25 05:13:58
【问题描述】:
我尝试了所有可能的方法来获取文件MembershipCard.js 上的简单参数。我的 Home 组件 Home.js 只是将 props 传递给 MembershipList.js ,在那里我完成了次要的 Array 操作并对其进行迭代以准备一个列表。然后将列表中的每个项目传递到第三个文件MembershipCard.js。我在这个文件中得到了membership 对象,并且能够在主页上准备一个卡片列表。在主页上,我必须显示一条边线,而我不希望在其他页面(也正在访问MembershipCard.js)上显示这条边线,因此我正在尝试发送一个变量,我将有条件地在该变量上显示边线。
但经过这么多尝试后,我仍然收到undefined
这是我的 React 组件 - Home.js
render () {
return (
<Surface>
<GreetingCard profile={this.props.profile.Profile}/>
<MembershipList props={this.props}/>
</Surface>
)
}
MembershipList.js - 仅包含几个函数
renderMembershipCard = (membership, i, props, sideLine = true) => {
return (
<TouchableOpacity key={i} style={styles.membership} onPress={() => props.navigation.navigate('Item', { title: membership.gym_name })}>
{/* <MembershipCard {...{membership, sideLine }}/> */}
<MembershipCard {...membership} sideLine={sideLine}/>
</TouchableOpacity>
)
}
const MembershipList = (props) => {
let membership = props.props.profile.Membership
let listArray = [];
Object.keys(membership).forEach(key => listArray.push(this.renderMembershipCard(membership[key], key, props.props)));
return (
<View>
<Text style={styles.ListTitle}>Active Membership ({listArray.length})</Text>
{listArray}
</View>
);
}
MembershipCard.js - 这个文件是我的表示层的一部分。它只返回一个卡片设计。
const MembershipCard = ({membership,sideLine}) => {
console.log('sideLine', sideLine); // showing undefined
console.log('membership', membership);
return (
<Card>
<Text style={styles.gymTitleText}>{membership.name}</Text>
... JSX code
</Card>
)
【问题讨论】:
标签: react-native jsx