在嵌套的 TouchableOpacity 中不工作
Not working onPress in nested TouchableOpacity
嗨,我的自定义组件像这样包裹在 TouchableOpacity 中。
const profileOnClick = () => {
console.log('Card Clicked!');
};
export const InfluencerCard = props => {
const {influencer, navigation} = props;
return (
<TouchableOpacity onPress={() => profileOnClick()}>
<Card>
<Text>
{influencer.user.name}
</Text>
<Text>
{influencer.tags[0].name}
</Text>
</Card>
</TouchableOpacity>
);
};
在主屏幕中
<ScrollView>
{data.categoriesForHome.map(category => (
<Layout key={category.id}>
<Text>
{category.name}({category.total})
</Text>
<ScrollView horizontal={true}>
{category.influencerProfiles.map(profile => (
<View key={profile.id}>
<InfluencerCard influencer={profile} />
</View>
))}
</ScrollView>
</Layout>
))}
</ScrollView>
当我单击自定义组件 InfluencerCard
时,它没有执行任何操作。
我想知道这是因为该组件在其他组件中,所以父组件阻止单击自定义组件。或者调用onPress函数错误
但我在没有父组件的情况下尝试过,它工作正常。
我错过了什么?
这是我的错误。问题不是来自代码或组件。
我使用来自 @ui-kitten/components 的 Card 组件,它在幕后实现了 TouchableOpacity。所以我不需要用 TouchableOpacity again.So 包装
<Card onPress={() => profileClick()}></Card>
嗨,我的自定义组件像这样包裹在 TouchableOpacity 中。
const profileOnClick = () => {
console.log('Card Clicked!');
};
export const InfluencerCard = props => {
const {influencer, navigation} = props;
return (
<TouchableOpacity onPress={() => profileOnClick()}>
<Card>
<Text>
{influencer.user.name}
</Text>
<Text>
{influencer.tags[0].name}
</Text>
</Card>
</TouchableOpacity>
);
};
在主屏幕中
<ScrollView>
{data.categoriesForHome.map(category => (
<Layout key={category.id}>
<Text>
{category.name}({category.total})
</Text>
<ScrollView horizontal={true}>
{category.influencerProfiles.map(profile => (
<View key={profile.id}>
<InfluencerCard influencer={profile} />
</View>
))}
</ScrollView>
</Layout>
))}
</ScrollView>
当我单击自定义组件 InfluencerCard
时,它没有执行任何操作。
我想知道这是因为该组件在其他组件中,所以父组件阻止单击自定义组件。或者调用onPress函数错误
但我在没有父组件的情况下尝试过,它工作正常。 我错过了什么?
这是我的错误。问题不是来自代码或组件。 我使用来自 @ui-kitten/components 的 Card 组件,它在幕后实现了 TouchableOpacity。所以我不需要用 TouchableOpacity again.So 包装
<Card onPress={() => profileClick()}></Card>