本文主要是介绍对于多amis embed渲染导致的tracker 无响应问题解决:,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原因:是amis对于默认env(fetcher,isCancel,tracker,session)进行了缓存(env保存在store中,store被缓存到stores对象中),只使用第一次缓存的数据,除非进行了clearStoresCache.
解决方法1: amis.embed({ })时传入env.session,session值不同则每次embed都创建新store.
不传session默认为 'global',为全局共用的
解决方法2:amis-core/src/factory.tsx中有个clearStoresCache方法可以清除store. 并且amis模块中将clearStoresCache暴露出来了。可以在embed前,执行下清除缓存重新创建。
const amisLib = amisRequire("amis")
amisLib.clearStoresCache(); //embed传入新env前 清除下缓存
self.amisScoped = amis.embed(
self.$refs["mnode"],
amisJSON, {},
amisEnv
);
这篇关于对于多amis embed渲染导致的tracker 无响应问题解决:的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!