在一个页面上trigger action,能否在另一个页面上listenTo?

发布于 2022-09-02 09:25:14 字数 772 浏览 12 评论 0

页面A:

const PageA = (props) => {
    return <div onClick={()=> {
        action.sendAction('click'); // 触发 action
        props.history.pushState('pageB'); // 跳转到B页面
    }}/>;
}

页面B:

class PageB extends Component {
    componentDidMount() {
        this.listenTo(action.sendAction, function(msg) { // 监听这个事件
            console.log(msg)
        })
    }
    
    render() {
        return null;
    }
}

环境:React 0.13.x / React-Router 1.x / Reflux;
PageA与PageB是两个页面(router),没有共享的store。

如代码所示,在A页面上trigger的action后,跳转回B页面上,此时B页面能否接受到这个trigger?

问题:
这样设计action是否合理?
理论上B页面能否确实原子的收到?
似这种从属(B页面呼出A页面,A改好数据再返回到B页面)怎样设计合理?

实际测试中,B页面确实可以收到这个trigger,但是放在手机上测试就不可以,很奇怪。

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

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

发布评论

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

评论(1

梦过后 2022-09-09 09:25:14

确认下一些细节:

这里所说的“页面A”、“页面B”,是指实际的HTML页面,还是只是两个React组件A、B。

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