Open CoolBerry opened 4 years ago
上述问题的引申问题: Page应该如何更好的监听global state的变化,来做相应的事情。 已知是page可以通过connectExtraStore来bind globalstate成为页面的state,那如何自动的处理,这部分state变化之后page还要处理的事情呢。 例如:userInfo(用户登录态)是global state,pageA connect了这部分state。那么想要实现pageA检测到userInfo发生变化之后,要重新刷新页面这个需求要怎么合理实现呢。
如果通过globalStore.subscribe((){//这里加判断})这样的方式确实是可以,但总感觉哪里怪怪的,因为page已经connect store的数据到page里了,但是还要subscribe store,就有点奇怪。
或许有更好的办法来实现。
pageA connect globalStore, 如果globalStore中的状态(pageA关心)发生变化,会自动触发 pageAStore状态的变化,也就能自动刷新。
@zjuwjf globalStore的状态更新后,自动触发pageStore的状态变化,那怎么触发pageStore的initState??
@zjuwjf globalStore的状态更新后,自动触发pageStore的状态变化,那怎么触发pageStore的initState??
不会触发initState。 initState 只会在创建store的初始化中执行一次。
@zjuwjf 因为一些api是在page的initState的时候去调用的,那如果是更新了globalState的用户,需要重新调用这些initState的api,该去怎么去触发好了??
可以放在 AppStore 和 PageStore 的connector 里
@zjuwjf 还是不太明白啊,请教可以给个demo吗?
@zjuwjf 还是不太明白啊,请教可以给个demo吗?
你可以给一下你的initState代码和AppStore 与 PageStore 的connector代码
pageA connect globalStore, 如果globalStore中的状态(pageA关心)发生变化,会自动触发 pageAStore状态的变化,也就能自动刷新。
@zjuwjf 对的是这样子的,假设就叫做stateA,global中的stateA刷新之后pageA里面就自动刷新了。但是因为是自动刷新,所以pageA的需求是,监测到stateA变化的话需要call一次后端,类似这种需求的话,应该写在什么地方会比较合适呢?
或者是否有更合适的方案?
可以写多个GlobalState吗? 比如PageA、PageB对应StateA,PageC、PageD对应StateC,分别connector
同问..不同page之间数据共享 除了globalStore还有别的办法吗
这个问题怎么优雅的解决,我也遇到了。 求助!!!!
如果只能做成globalState的话,那么当页面变多之后,为了页面之间共享数据的需求,global state数据会越来越多。