React-Native-Navigator導(dǎo)航條-正向傳值(二)

能跳轉(zhuǎn)以后,不可避免的就要涉及到傳值的問(wèn)題,下面也來(lái)記錄下正向傳值

首先,我們需要對(duì)Navigator的renderScene進(jìn)行設(shè)置

//渲染
    renderScene(route, navigator) {
        //導(dǎo)航條跳轉(zhuǎn)傳遞參數(shù)   params 為傳遞的參數(shù) 其他頁(yè)面?zhèn)髦禃r(shí)的名字要和這里設(shè)置的一樣
        return <route.component {...route.params} navigator={navigator}/>

        //沒(méi)有參數(shù)
        // return <route.component navigator={navigator} />
    }

然后,在頁(yè)面跳轉(zhuǎn)的方法里面這樣寫

//params對(duì)應(yīng)的就是我們要傳的值,這里我傳了兩個(gè)值
goPage2() {
        this.props.navigator.push({
            component:SecondPageComponent,
            params:{//params 要和HomePage.js里面的 renderScene(route, navigator)里面設(shè)置的參數(shù)名一樣
                param1:'第一個(gè)參數(shù)',
                param2:'第二個(gè)參數(shù)',
            }
        })
    }

再然后,我們需要在第二個(gè)頁(yè)面接收這兩個(gè)值,所以我們要聲明兩個(gè)屬性進(jìn)行接收

constructor(props){
        super(props);
//這兩個(gè)屬性就是我們要接收第一頁(yè)傳過(guò)來(lái)的兩個(gè)值
        this.state = {
            paramGet1:PropTypes.string,
            paramGet2:PropTypes.string,
        };
    }

再再然后,屬性已經(jīng)聲明了,下面就是接收值了

//這個(gè)方法就是聲明周期的其中一個(gè)了,render()運(yùn)行后,就會(huì)調(diào)用這個(gè)方法,我們?cè)谶@里接收傳過(guò)來(lái)的兩個(gè)值
 componentDidMount() {
        //這里獲取從FirstPageComponent傳遞過(guò)來(lái)的參數(shù)
        this.setState({
            paramGet1: this.props.param1,
            paramGet2: this.props.param2,

        });

    }

接收過(guò)來(lái)的值顯示到頁(yè)面上

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

                </TouchableOpacity>

                <Text style={{backgroundColor:'red'}}>參數(shù)1:{this.state.paramGet1}</Text>
                <Text style={{backgroundColor:'red'}}>參數(shù)2:{this.state.paramGet2}</Text>
            </View>
        )

    }

OK,這樣就可以正向傳值了

navgif.gif

項(xiàng)目地址:https://github.com/chjwrr/RN-NatigatorTest

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容