React-Native-Navigator导航条-正向传值(二)

能跳转以后,不可避免的就要涉及到传值的问题,下面也来记录下正向传值

首先,我们需要对Navigator的renderScene进行设置

//渲染
    renderScene(route, navigator) {
        //导航条跳转传递参数   params 为传递的参数 其他页面传值时的名字要和这里设置的一样
        return <route.component {...route.params} navigator={navigator}/>

        //没有参数
        // return <route.component navigator={navigator} />
    }

然后,在页面跳转的方法里面这样写

//params对应的就是我们要传的值,这里我传了两个值
goPage2() {
        this.props.navigator.push({
            component:SecondPageComponent,
            params:{//params 要和HomePage.js里面的 renderScene(route, navigator)里面设置的参数名一样
                param1:'第一个参数',
                param2:'第二个参数',
            }
        })
    }

再然后,我们需要在第二个页面接收这两个值,所以我们要声明两个属性进行接收

constructor(props){
        super(props);
//这两个属性就是我们要接收第一页传过来的两个值
        this.state = {
            paramGet1:PropTypes.string,
            paramGet2:PropTypes.string,
        };
    }

再再然后,属性已经声明了,下面就是接收值了

//这个方法就是声明周期的其中一个了,render()运行后,就会调用这个方法,我们在这里接收传过来的两个值
 componentDidMount() {
        //这里获取从FirstPageComponent传递过来的参数
        this.setState({
            paramGet1: this.props.param1,
            paramGet2: this.props.param2,

        });

    }

接收过来的值显示到页面上

render() {
        return (
            <View style={firstPageStyle.viewStyleBase}>
                <TouchableOpacity onPress={() => this.backPage1()}>
                        <Text style={firstPageStyle.textStyleBase}>第二页</Text>

                </TouchableOpacity>

                <Text style={{backgroundColor:'red'}}>参数1:{this.state.paramGet1}</Text>
                <Text style={{backgroundColor:'red'}}>参数2:{this.state.paramGet2}</Text>
            </View>
        )

    }

OK,这样就可以正向传值了

navgif.gif

项目地址:https://github.com/chjwrr/RN-NatigatorTest

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容