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

页面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,但是放在手机上测试就不可以,很奇怪。

阅读 2.8k
1 个回答

确认下一些细节:

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏