当前位置: 首页 > 知识库问答 >
问题:

在React Native中有更多卡组件要导航时,如何刷新导航参数

锺离卓
2023-03-14

当我单击一个卡片组件并将数据传递到另一个页面时,当我返回并单击从导航传递的另一个参数时,导航不会更改。这是我导航的第一页:

import React,{ useState,useEffect} from 'react';
import { View, Text,TouchableOpacity, Button, StyleSheet ,Image,ScrollView} from 'react-native';
import { FontAwesome, Feather, MaterialIcons,Ionicons } from 'react-native-vector-icons';

const PaymentScreen = ({ route, navigation }) => {

 

  const [paymentList, setPaymentList] = useState([]);
  useEffect(() => {
    fetch(
      "https://run.mocky.io/v3/73958238-7761-4d81-8577-793ff92c0ea1" 
      
    )
      .then((res) => res.json())
      .then((data) => {
        setPaymentList(data);
      });
  }, []);
const showPayment=() =>{
  return (
    paymentList &&
    paymentList
       .filter((word) => route.params.Name== word.userID)
       .map((Aname, i) => {
      
         return (
           <View style={{padding: 8 }}>
           
           <PaymenCard date={Aname.date} discount={Aname.id} cash={Aname.amount} forwardLink={() => navigation.navigate('morePayments',{itemId: Aname.id})}/> 
           
           </View>
        
         );
       })
   
  )
}

 
    return (
      <View style={styles.container}>
        <View style={styles.paymentbox}>
          <Text style={styles.payment}>Payments</Text>
        </View>
      
       <ScrollView>
          { showPayment()}
       </ScrollView>
      </View>
    );
};

export default PaymentScreen;

const styles = StyleSheet.create({
  container: {
    flex: 1, 
  backgroundColor:'#22343C',
  
  },
  payment:{
    fontSize:42,
    color: "white",
    fontWeight: "bold",
  },
  paymentbox:{
    marginLeft:32,
    paddingBottom: 5
  }
 
});

function PaymenCard(props ){
 
  return(
    
    <TouchableOpacity onPress={props.forwardLink}>
    <View style={styles1.cardbox}>
    <View style={styles1.square}>
      <View style={styles1.dollarbig}>
        <MaterialIcons name="monetization-on" color="#FFC542" size={30} />
      </View>
    </View>
    <View style={styles1.datedisc}>
      <View style={styles1.date}>
        <Text style={styles1.datetext}>{props.date} </Text>
      </View>
      <View style={styles1.discount}>
       <View style={styles1.rocket}>
       <FontAwesome name="rocket" color="#FFC542" size={20} />
      </View>
       <View style={styles1.discountval}>
        <Text style={styles1.discounttext}>{props.discount}</Text>
      </View>
      </View>
    </View>
    <View style={styles1.cashbox}>
    <Text style={styles1.cashtext}>{props.cash}</Text>
    </View>
  </View>
  </TouchableOpacity>
  )
}

const styles1 = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#22343C',
  },
  cardbox: {
    height: 115,
    width: 345,
    backgroundColor: '#30444E',
    borderRadius: 25,
    marginLeft: 22,
    flexDirection: 'row',
  },
  square: {
    height: 57,
    width: 59,

    borderRadius: 12,
    backgroundColor: '#FF565E',
    marginTop: 24,
    marginLeft: 23,
  },
  dollarbig: {
    marginTop: 15,
    alignItems: 'center',
  },
  datedisc: {
    marginTop: 24,
    marginLeft: 16,
    width: 145,
    flexDirection:"column"
  },
  datetext: {
    color: 'white',
    fontSize: 14,
  },
  discount:{
     marginTop:15,
    flexDirection:"row",
  },
  rocket:{
   
  },
  discountval:{
    marginLeft:13
  },
  discounttext:{
    color:"white",
      fontSize: 14,
  },
  cashbox:{
    marginTop:30,
    marginLeft:25
  },
  cashtext:{
    color:"#FF575F",
    fontWeight:"bold",
    fontSize:18
  }

});

共有1个答案

隗俊誉
2023-03-14

我找到了解决方案。在那里,我使用了初始参数。因此,一旦设置了该值,它就不会再次升级。我使用 react 上下文 API 来全局设置更新值

 类似资料:
  • 当我单击一个卡组件并将数据传递到另一个页面时,以及当我返回并单击另一个从导航传递的参数时。导航未更改。这是我浏览的第一页 从“React”导入React,{useState,useffect};从“react native”导入{View,Text,TouchableOpacity,Button,StyleSheet,Image,ScrollView};从“react native vector

  • 我正在一个新的Android应用程序上使用导航组件,但我不知道怎么做 首先,我有我的主活动,我有main_navigation_graph 主要活动 NavHostFragment main_navigation_graph里面有3个碎片 这里一切都很好。问题是当我到达最后一个片段时,因为在这个片段上,我想根据BottomNavigationView输入(暂时)显示一些子片段(在新的NavHost

  • 导航组件说明 组件 说明 最低版本 navigator 页面链接 1.0.0 functional-page-navigator 用于跳转插件功能页 不支持 navigator 属性 类型 默认值 必填 说明 最低版本 url string 否 当前小程序内的跳转链接 open-type navigate 否 跳转方式 hover-class string navigator-hover 否 指定

  • 问题内容: 我有一个导航图,该导航图将此片段用作主活动XML中的主页。 我有一个带有菜单的Drawer布局,单击导航抽屉按钮时,我无法设法使导航正常工作(它可以从主要片段工作,但是当我单击Drawer按钮时,不能工作),如果我使用的是旧方法使用:对导航抽屉编程,我的navcontroller丢失了!!我得到类似的错误 navcontroller无法识别目标片段,因为即使不是这种情况,控制器也会看到

  • 我有一个导航图,它在主活动XML中使用这个片段作为主页。 我有一个带菜单的抽屉布局,当我点击抽屉菜单按钮时,我无法使导航工作(它从主片段工作,但当我点击抽屉按钮时就不工作),如果我使用旧的方式来编程抽屉菜单:

  • 我正在我的应用程序中尝试导航架构组件。早些时候,我使用片段事务来实现以下功能。基本上,我想从导航。 碎片- 如果我正在使用导航组件并尝试 然后结果是FragmentA被FragmentB替换并且背景片段不可见。 我想知道一个解决方案,如果导航架构组件允许的话。 附言:我听说过嵌套导航主机,但从内部使用它好吗。 更新: FragmentB将有进一步交易的行动,例如: 碎片- 当用户按下后退按钮时,片