项目使用vue,一些字段需要翻译,后台给了一个接口,用于获取字典。我在根组件mounted的时候发请求,store是这样的:然后在子组件取参数现在问题来了,如果从其他页面进入这个页面,getParams()是似乎总是可以取到参数,但是如果在当前页面刷新,就有可能无法取到参数,这是dic还是{}。很显然这是一个异步的问题。想到一个比较稳妥的解决方案,写一个action,先判断state里面的dictionary有没有,如果没有就去发个请求,返回promise,在then里面写之后的逻辑。每次需要翻译的时候就去dispatch这个action。但是这个项目几乎每个页面都需要这个翻译的参数,有没有办法只请求一次,不用每次都去使用这个action?目前的解决方案是用延时mounted(){ setTimeout(() => { this.getParams(); }, 1000); }用了之后好像再没遇到过参数获取不到的问题了。但是这种做法并不严谨。有没有更稳妥的做法?
添加回答
举报
0/150
提交
取消