add loop property & fix bug caused by renderPage cache

This commit is contained in:
王劲鹏
2020-04-09 16:58:47 +08:00
committed by osborn
parent d1f32b7f5c
commit c44c3e5353
12 changed files with 58 additions and 39 deletions

View File

@@ -15,6 +15,7 @@ export interface ISlider extends IView {
itemCount: number;
batchCount?: number;
onPageSlided?: (index: number) => void;
loop?: boolean;
}
export declare class Slider extends Superview implements ISlider {
private cachedViews;
@@ -24,6 +25,7 @@ export declare class Slider extends Superview implements ISlider {
renderPage: (index: number) => SlideItem;
batchCount: number;
onPageSlided?: (index: number) => void;
loop?: boolean;
private getItem;
isDirty(): boolean;
private renderBunchedItems;

View File

@@ -43,12 +43,9 @@ export class Slider extends Superview {
return this.cachedViews.values();
}
getItem(itemIdx) {
let view = this.cachedViews.get(`${itemIdx}`);
if (view === undefined) {
view = this.renderPage(itemIdx);
view.superview = this;
this.cachedViews.set(`${itemIdx}`, view);
}
let view = this.renderPage(itemIdx);
view.superview = this;
this.cachedViews.set(`${itemIdx}`, view);
return view;
}
isDirty() {
@@ -89,6 +86,10 @@ __decorate([
Property,
__metadata("design:type", Function)
], Slider.prototype, "onPageSlided", void 0);
__decorate([
Property,
__metadata("design:type", Boolean)
], Slider.prototype, "loop", void 0);
export function slider(config) {
const ret = new Slider;
for (let key in config) {