首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

SAP 电商云 Spartacus UI ActiveCartService isStable 调用何时返回 true

单从这个 initiator 栏,是很难找到是哪一行应用代码,发起的这个 cart 加载: 根据 [Cart] Load Cart 关键字搜索是能找到的: 最后找到了准确的代码行数,调用...因为 Spartacus 有大量 createSelect 的调用: 如下图所示: createSelector 的输入参数由一个 Selector 和 projector 组成。...n - 1 个参数都被当成 selector 处理,最后一个参数为 projector: 下图 getCartIsStableSelectorFactory 实现体的第 58 行代码为什么会被调用...是因为 MultiCartService 的 isStable 方法在 Cart Load 场景里被调用?...确实如此: 所以每一次可能引起 isStable 返回值发生变化的时候,getCartIsStableSelectorFactory 里的 projector 都会被调用,重新计算 isStable

42520

RecyclerView预加载!

原因是RecyclerView并不保证每个表项出现时onScrolled()都会被调用,若滚动非常快,某个表项错过该回调是有可能发生的。...layoutManager.findLastVisibleItemPosition() >= layoutManager.itemCount - 1 - preloadCount) { onPreload() } 将==改成>=,条件是放宽了,但多次调用的问题更加严重了...不要担心用户在列表底部多次上拉导致回调多次预加载,因为这种情况下onBindViewHolder()不会执行多次。当RecyclerView更换LayoutManager时,也不需要修改代码。...唯一需要担心的是,列表滚动到底部触发了一次预加载后,又往回滚动(阈值位表项滚出屏幕),假设预加载迟迟没有完成,此时再次滚动到底部,移出屏幕的阈值位表项需要重新执行`onBindViewHolder(),...但我更倾向于让业务层维护这个标记位,因为若Adapter只单纯地提供预加载时机,它就不需要关心业务层加载何时结束。

2.3K00
领券