【问题标题】:Navigating to cart screen with stack navigation header使用堆栈导航标题导航到购物车屏幕
【发布时间】:2020-07-18 12:56:37
【问题描述】:

我有一个包含 7 个不同屏幕的堆栈导航器,并且每个屏幕标题上都放置了一个购物车图标。我想通过将该购物车图标按到购物车屏幕/页面来导航。我试图将 onPress 功能放在图标和标题选项中,但都是徒劳的。 另外,我想知道购物车系统将如何工作。 下面是我的单栈导航屏幕

<HomeStack.Screen name="EARRINGS" component={Earring}
options={{headerRight:() => <ShoppingCartIcon /> }}         
 />  

下面是我的 ShoppingCartIcon 代码:

const ShoppingCartIcon = () => {
    return (
        <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
       
            <View style={{position: 'absolute', top: -20,  right: 0, width: 70, height: 70, alignItems:"center",justifyContent:"center", zIndex:2000 }}>
                <Text style={{fontSize:20,fontWeight:"bold"}}>0</Text>
            </View>
            <AntDesign name="shoppingcart" color="black" size={24} style={{marginRight:10}} />
    </View>
    )
  }


export default (ShoppingCartIcon)

请帮帮我。

【问题讨论】:

    标签: react-native react-navigation


    【解决方案1】:

    你可以像下面这样传递导航道具

    <HomeStack.Screen
        name="EARRINGS"
        component={Earring}
        options={({ navigation }) => ({
          headerRight: () => (<ShoppingCartIcon navigation={navigation}/> )
        })}
      />
    

    您可以使用导航道具导航到您需要的任何屏幕

    const ShoppingCartIcon = ({navigation}) => {
      //other code
      navigation.navigate('Cartscreen')
    }
    

    【讨论】:

    • 感谢您的回答。我在堆栈导航器和 cartIcon 页面 &lt;AntDesign name="shoppingcart" color="black" size={24} style={{marginRight:10}} onPress={()=&gt;navigation.navigate("CART")} /&gt; 中传递了导航道具。但这仍然行不通。我做错了吗??
    • 你的导航道具正确吗? “购物车”是一个有效的屏幕,对吗?
    • 是的,我通过了 props const ShoppingCartIcon = ({navigation}) =&gt; { 并且 CART 是有效的屏幕。
    • 好的,问题在于具有绝对位置的文本的包装视图,使用绝对位置时,onpress 不起作用,您可以删除它并尝试吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多