react native 组件跳转带参数

2016-10-17  本文已影响906人  麦子_FE

最近开发react native项目,组件跳转带参数可以有两种做法

首先先罗列navigator对象包括的方法

push(route)——导航到一个新的路线

pop()——返回一个页面

popN(n)——一次返回 N 页。当 N=1 时,该行为相当于pop()

replace(route)——取代当前页面的路线,并立即为新路线加载视图

replacePrevious(route)——取代前一页的路线/视图

replacePreviousAndPop(route)——取代了以前的路线/视图并转换回去

resetTo(route)——取代顶级的项目并 popToTop

popToRoute(route)——为特定的路线对象回到项目

popToTop()——回到顶级项目

关于组件参数传递

1.使用push跳转组件:传递的时候就是直接的组件跳转带props

demo:

/**

* 跳转到 选择类型

* @param name 名称

* @param type 跳转效果

*/

selectType(name,type){

this.props.navigator.push({

name:"SelectType",//跳转的组件名称

passProps:{

name:name,

LocalCityName:this.props.LocalCityName,

LocalProvinceName:this.props.provinceName,

cityName:this.props.cityName,

provinceName:this.props.provinceName

},

type: 'Right'//跳转动画

})

}

2.如果子组件需要返回父亲组件  可以用过上一个页面的实例或者回调方 法,作为参数传递到当前页面来,在当前页面操作上一个页面的state

父组件:

navigator.push({

name: 'SecondPageComponent',

component: SecondPageComponent,

params: {

id: this.state.id

getUser: function(user) {//这里是父亲组件传递给子组件的回调函数

_this.setState({

user: user

})

}

}

});

子组件: 这里可以拿到getUser,getUser指向父组件的传递过来回调函数,这样你通过pop返回到父组件的时候,只要你在子组件修改了user,那么父组件就修改为子组件操作时候的状态了。

if(this.props.getUser) {

var user = USER_MODELS[this.props.id];

this.props.getUser(user);//就是这里使用了父亲组件传递过来的回调函数

}

上一篇下一篇

猜你喜欢

热点阅读