React native-如何在TabNavigator中的不同屏幕之间传递数据?

时间:2020-06-27 13:28:41

标签: react-native tabnavigator

我有一个TabNavigator,其中包含2个屏幕,PlanScreen and Recherchescreen,在Recherchescreen中,我使用访存api来获取数据,并显示其中的一些,所以我想在我的Planscreen without the need to use fetch中传递一些数据也在此屏幕上。 代码如下:

import RechercheScreen from './RechercheScreen'
class PlanScreen extends React.Component {
    render(){
      return (
        <View style={styles.container}>
           <MapR/>
        </View>
      );
    }
  
  }

  class ListMed extends React.Component {
  render(){
    return (
      
      <tab.Navigator swipeEnabled={false}>
          <tab.Screen name="Recherche" component={RechercheScreen} />
          <tab.Screen name="Plan" component={PlanScreen}/> 
      </tab.Navigator>
      
    );
  }
  

在我的RechercheScreen上:

componentDidMount() {
    this._Request();
  }
  _Request = () => {
    
    fetchLien(*************).then((res) => {
      
      console.log("****************");
      console.log(res.medecin[0].obj);
      console.log("****************");
      this.setState({
        dataSource:res.medecin,
       
      })
    })
  }
render() {
    return (
<View>
 <Text > {res.medecin[0].obj.id}</Text>
<View>
)

让我们以显示在此屏幕上的ID为例,如何传递它? 任何建议都值得欢迎! 谢谢。

1 个答案:

答案 0 :(得分:0)

您可以在导航时将这些参数传递到其他屏幕。

将参数作为第二个对象放入路径中,从而将其传递给路线 navigation.navigate函数的参数: navigation.navigate('RouteName',{/ * params go here * /})

阅读屏幕组件中的参数:route.params。

示例:

this.props.navigation.navigate('PlanScreen', { myId: Your id })
         // OR
this.props.navigation.setParams({myId: Your id})

这就是您获取这些params on your PlaneScreen

的方式
this.props.route.params.myId

Link to React-Navigation docs