我在webview中有一个单页应用程序。
我有3个页面A B和C, A是一个列表页面,B是编辑页面,C是B的子页面,点击A中的一个列表项,进入B页,B从远程服务器获取数据并显示数据,当点击B的一个字段,进入C页,用户可以在C页编辑,然后点击C页的"保存"按钮,然后返回B页。
流程如下:
点击A页的一个项目=>
B从远程服务器获取数据并显示=>
点击B的一个字段,转到C=>
用C语言编辑数据并点击"保存"按钮=>
转到B页,B显示部分新数据
我的问题:
C必须使用"browserHistory.goBack()"来转到b。
当用户从c返回时,B不应该获取数据
B应该显示c的数据
B不知道是A还是c。
目前我通过使用redux状态和动作修复了这些问题。但我认为这不是一个好的解决方案。如果C是一个公共页面,C不应该知道b的存在。
谁有更好的解决方案?action -> store方法是可行的。如果组件挂载时数据还不存在,那么您的页面A、B和C应该侦听该存储并获取数据。
如果C是一个公共页面,当它加载时,它将尝试使用Store中的数据,因为它不在那里,它将触发一个操作来为您获取数据并将其放入Store中。同时,你的"C"页面将显示经典的"Loading…"消息