react-native 学习总结

react-native 基础以及各个方面知识店等。一方面做为学习总结,另外一方面也方便查阅,总结并没有严格顺序,天天遇到则加上。javascript

不一样页面路由传输数据——与父子组件传递数据通讯不同

  • 从第一个页面,跳转到两一个页面时能够在navigator.push里面加入传输的参数java

  • 从第二个页面返回到上一个页面时候也须要传递参数回上一个页面:可是navigator.pop()并无提供参数,由于pop()只是从[路由1,路由2,路由3。。。]里把最后一个路由踢出去的操做,并不支持传递参数给倒数第二个路由,这里要用到一个概念,把上一个页面的实例或者回调方法,做为参数传递到当前页面来,在当前页面操做上一个页面的state:react

sequenceDiagram
firstPage->>secondPage: navigator.push({para:{id:1})
secondPage->>firstPage: 回调方法传递到当前页面来

es5代码示例es6

navigator.push({
    name: 'SecondPageComponent',
    component: SecondPageComponent,
    params: {
        id: this.state.id,
        //从SecondPageComponent获取user
        getUser: function(user) {
            _this.setState({
                user: user
            })
        }
    }
});

es6代码示例react-native

navigator.push({
    name: 'SecondPageComponent',
    component: SecondPageComponent,
    params: {
        id: this.state.id,
        //从SecondPageComponent获取user
        getUser: (user)=>{
            this.setState({
                user: user
            })
        }
    }
});

react-native中文社区的navigator教程示例函数

pressButton() {
            const { navigator } = this.props;
            if(this.props.getUser) {
                let user = USER_MODELS[this.props.id];
                this.props.getUser(user);
            }
            // 按到返回时候 先进行数据处理,用上级函数方法,而后再跳转回去
            if(navigator) {
                navigator.pop();
            }
    }

1.明显能够看出es6箭头函数的方便和简洁
2.可是物理返回键时数据处理(前面页面如何进行更新?解决中 extend backAndroid)
安卓back键的处理相关问题post

相关文章
相关标签/搜索