Merge branch 'master' of code.aliyun.com:Doric/doric-js

This commit is contained in:
pengfei.zhou 2019-12-14 11:31:34 +08:00
commit 919ec7aeb7
3 changed files with 28 additions and 5 deletions

View File

@ -194,11 +194,12 @@ export function jsObtainContext(id: string) {
export function jsReleaseContext(id: string) { export function jsReleaseContext(id: string) {
const context = gContexts.get(id) const context = gContexts.get(id)
const args = arguments
if (context) { if (context) {
timerInfos.forEach((v, k) => { timerInfos.forEach((v, k) => {
if (v.context === context) { if (v.context === context) {
if (global.nativeClearTimer === undefined) { if (global.nativeClearTimer === undefined) {
return Reflect.apply(_clearTimeout, undefined, arguments) return Reflect.apply(_clearTimeout, undefined, args)
} }
timerInfos.delete(k) timerInfos.delete(k)
nativeClearTimer(k) nativeClearTimer(k)

View File

@ -367,9 +367,11 @@ export abstract class Superview extends View {
toModel() { toModel() {
const subviews = [] const subviews = []
for (let v of this.allSubviews()) { for (let v of this.allSubviews()) {
v.superview = this if (v != undefined) {
if (v.isDirty()) { v.superview = this
subviews.push(v.toModel()) if (v.isDirty()) {
subviews.push(v.toModel())
}
} }
} }
this.dirtyProps.subviews = subviews this.dirtyProps.subviews = subviews

View File

@ -43,7 +43,11 @@ export class FlowLayout extends Superview implements IFlowLayout {
private ignoreDirtyCallOnce = false private ignoreDirtyCallOnce = false
allSubviews() { allSubviews() {
return this.cachedViews.values() if (this.loadMoreView) {
return [...this.cachedViews.values(), this.loadMoreView]
} else {
return this.cachedViews.values()
}
} }
@Property @Property
@ -64,6 +68,15 @@ export class FlowLayout extends Superview implements IFlowLayout {
@Property @Property
batchCount = 15 batchCount = 15
@Property
onLoadMore?: () => void
@Property
loadMore?: boolean
@Property
loadMoreView?: FlowLayoutItem
reset() { reset() {
this.cachedViews.clear() this.cachedViews.clear()
this.itemCount = 0 this.itemCount = 0
@ -91,6 +104,13 @@ export class FlowLayout extends Superview implements IFlowLayout {
return listItem.toModel() return listItem.toModel()
}) })
} }
toModel() {
if (this.loadMoreView) {
this.dirtyProps['loadMoreView'] = this.loadMoreView.viewId
}
return super.toModel()
}
} }
export function flowlayout(config: IFlowLayout) { export function flowlayout(config: IFlowLayout) {