mobx的store中获取数据如果获取成功将跳转路由,但是store中无法使用this.props

发布于 2022-09-11 18:07:35 字数 1756 浏览 20 评论 0

问题描述

mobx的store中有一个获取token的request,如果获取成功将跳转路由至'/',但是store中无法使用this.props.history.push('/')

问题出现的环境背景及自己尝试过哪些方法

尝试加一个state存储登录与否,但是不太好,有没有直接解决的方法?

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
class IssueStore {

@observable open_list = []
@observable item = ''
@observable isLogin = false
@observable username = ''
@observable password = ''
@observable table_loading =true
@computed get fullName() {
    const { firstName, lastName } = this;
    if (!firstName && !lastName) {
        return "Please input your name!";
    } else {
        return firstName + " " + lastName;
    }
}
@computed get loginStatus(){
    return loginStatus=this.isLogin;
}
@action queryToken() {
    NewRequest.request({
        form: {
            "username": this.username,
            "password": this.password
        },
        url: BaseUrl+'/api/api-token-auth/',
        success: function (res) {
            let str = JSON.parse(res);
            NewRequest.setStorage('token', str.token);
            NewRequest.setStorage('username',this.username );
            this.isLogin=true
        }.bind(this),
        error: function () {
            message.error('信息错误,请重新登录!');
        }.bind(this)
    })
}
@action queryOpenList() {
    NewRequest.request({
        user_method: 'List_open',
        url: BaseUrl + '/api/issue/',
        success: function (res) {
            var obj = JSON.parse(res);
            this.open_list=obj;
            this.table_loading=false;
        }.bind(this),
        error: function (res) {
            if(res.status==='401'){
            }
           
        }.bind(this)
    })
}

}

你期待的结果是什么?实际看到的错误信息又是什么?

希望能够直接在上面这个queryToken函数里直接进行路由跳转。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

他不在意 2022-09-18 18:07:35

mobx-react-router 这个库可以了解一下,可以把router和store绑定,就很容易实现了

心病无药医 2022-09-18 18:07:35

跳转的逻辑放到组件里进行吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文