react native 的 Navigator

首先安装 Navigator

 npm i -S react-native-deprecated-custom-components

引入Navigator

import {Navigator} from 'react-native-deprecated-custom-components'

再次说一遍报错 就把node_module删了重新 装 ,我严重怀疑是不是 要每次装新包的时候都删除一遍/~~/

要实现一个页面到另外页面的跳转

主代码

import {Navigator} from 'react-native-deprecated-custom-components'
import Boy from './Boy'
<Navigator
            initialRoute = {{component:Boy}}
            renderScene ={(route,navigator)=>{
            let Component = route.component
            return <Component navigator={navigator} {...route.params} />
          }}
        >

        </Navigator>

组件1代码

import React,{Component} from 'react';
  import {View, Text,StyleSheet} from 'react-native';
  import Girl from "./Girl"
  export default class Boy extends Component{
    constructor(props){
      super(props)
      this.state={
         word:''
      }
    }
    render(){
      return (<View style={styles.container}>
        <Text style={styles.text}>I'm a boy</Text>
        <Text style={styles.text}
        onPress={()=>{
          this.props.navigator.push({
            component:Girl,
            params:{
                word:'一朵玫瑰',
                onCallBack:(word)=>{
                  this.setState({word:word});
                }
            }
          })
        }}
        > 送给女孩一支玫瑰</Text>
        <Text style={styles.text}>{this.state.word}</Text>
      </View>)
    }
  }
  /*
  * this.props.navigator.push({
            component:Girl,
            params:{
                word:'一朵玫瑰',
                onCallBack:(word)=>{
                  this.setState({word:word});
                }
            }
          })
  *  navigator 会从上级传递过来 作为props 的属性存在
  *  push方法  转到 那个组件 (参数1:component,参数2:params 传到下个页面的参数)
  *  pop方法 关闭当前页面
  *
  * */
  const styles =  StyleSheet.create({
     container:{
       flex:1,
       backgroundColor:'gray',
       justifyContent:'center',
     },
    text:{
        fontSize:20,
  
    }
  })

组件代码2

import React,{Component} from 'react';
import {View, Text,StyleSheet} from 'react-native';
import Boy from './Boy';

export default class Girl extends Component{
  constructor(props){
    super(props);
    this.state={

    }
  }
  render(){
    return(
        <View style={styles.container}>
          <Text style={styles.text}>
            I'm a girl
          </Text>
          <Text style={styles.text}>
           我收到了男孩送的 {this.props.word}
          </Text>
          <Text style={styles.text}
           onPress={()=>{
             this.props.onCallBack('巧克力')
             this.props.navigator.pop()
           }}
          >
           回赠巧克力
          </Text>
        </View>
    )
  }
}
const styles =  StyleSheet.create({
  container:{
    flex:1,
    backgroundColor:'pink',
    justifyContent:'center',
  },
  text:{
    fontSize:20,
  }
})

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值