reflux 如何讲方法存进store 中在组件里调用

发布于 2022-09-02 13:07:50 字数 712 浏览 13 评论 0

问题详情: 一个list组件 点击每一个list会发起请求,然后开始自动5秒循环的执行这个操作,直到点击下一个list的时候先清空上一个list的循环,才执行这一个list 的循环。
我写的方法 点击下一次的时候 未能清掉setInterval
请问如何处理????

handleAjax: function () {
    var trainRunId = this.props.trainRunId;
    var cxt = {
        trainRunId: trainRunId,
        stationId: i,
        pageIndex: "1",
        pageSize: "4"
    };
    Service.POST(function (data) {
        PassengerSerAction.stationLayout(data.data)
    }.bind(this), cxt, function () {
        alert("请求失败")
    }.bind(this))
},
handleOnClick: function () {
    this.handleAjax();
    clearInterval(Info);
    this.Info = setInterval(function () {
        this.handleAjax();
    }.bind(this), 10000);

}




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

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

发布评论

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

评论(2

青柠芒果 2022-09-09 13:07:50

经过自己的思考已经得出初步的方案,并且成功实现
因为在点击下一个list的时候组件重新加载了,下面是代码

我把setInterval的返回值保存在了store里

handleAjax: function () {
    var trainRunId = this.props.trainRunId;
    var cxt = {
        trainRunId: trainRunId,
        stationId: i,
        pageIndex: "1",
        pageSize: "4"
    };
    Service.POST(function (data) {
        PassengerSerAction.stationLayout(data.data)
    }.bind(this), cxt, function () {
        alert("请求失败")
    }.bind(this))
},
handleOnClick: function () {
    this.handleAjax();
    clearInterval(PassengerSerStore.refreshInfo);
    var Ask = setInterval(function () {
        this.handleAjax();
    }.bind(this), 5000);
    PassengerSerAction.refreshInfo(Ask);
}
猫弦 2022-09-09 13:07:50

……不得不说,朋友你的 clearInterval(Info),这个Info并不是你下文设定的this.Info啊;写成clearInterval(this.Info)试试吧,以及记得在init里面声明一下this.Info不为undefined

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