如何不使用Navigator空间实现跳转页面?



  • 我正在做一个app,想实现登录跳转的功能,但是不知道怎么实现


  • administrators

    //引入 Loading页面 主页面 登录页等页面组件
    constructor(props) {
        super(props);
        this.state = { 登录状态: 等待检查 };
    }
    componentDidMount() {
        this.检查登录();    // 比如调用asyncstorage
    }
    检查登录() {
        if(经过检查后是已登录状态) {
              this.setState({ 登录状态: 已登录 });
        }
        else {
              this.setState({ 登录状态: 未登录 });
        }
    }
    render() {
    const { 登录状态 } = this.state;
    switch(登录状态) {
         case 等待检查:
                   return <Loading页面 />;
         case 已登录:
                   return <主页面 />;
         case 未登录:
                   return <登录页 />;
    }
    }
    
    


  • @sunnylqm 大神,这些东西我在官方文档上怎么没见过呢?这些东西的文档在哪啊?


  • administrators

    @Harvey 多读多看github上的项目吧


  • administrators

    @Harvey

    如果你是说类似componentDidMount的方法的说明,那么需要看这里 http://facebook.github.io/react/docs/component-specs.html



  • @sunnylqm 多谢指点!



  • render: function () {
    if (this.state.isLogin) {
    return (<Home toLogin={this.toLogin} />)
    } else {
    return (<Login toHome={this.toHome} />);
    }
    },

    toHome: function () {
    this.setState({isLogin: true});
    },



  • @makao007 那在登陆页面登陆成功之后怎么办呢?怎么跳转到主页面?我的主页面里有navigator所以不能用navigator跳转。



  • @Harvey 上面有个toHome(), 验证用户密码正确后,调用这个函数,就会跳到主页啦。
    调用方法: this.props.toHome();



  • @makao007 好的,多谢大神,我这就去试试



  • @makao007 成功了!多谢指点,我现在终于理解了一点这个界面是怎么回事了。


登录后回复