Skip to content

Commit 8177025

Browse files
committed
fix(ohos): the callback param of component method support map type
1 parent 8d1cae0 commit 8177025

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

framework/ohos/src/main/ets/renderer_native/NativeRenderImpl.ets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -737,7 +737,7 @@ key1 value1
737737
}
738738

739739
viewManager.callRenderViewMethodForCApi(params.tag, params.method, params.params, params.callbackId == 0 ? null : (result: HippyAny) => {
740-
this.libHippy?.NativeRenderProvider_DoCallbackForCallCustomTsView(this.instanceId, params.rootTag, params.tag, params.callbackId, result)
740+
this.libHippy?.NativeRenderProvider_DoCallbackForCallCustomTsView(this.instanceId, params.rootTag, params.tag, params.callbackId, HRValueUtils.convertMapToObject(result))
741741
})
742742
}
743743

framework/ohos/src/main/ets/renderer_native/utils/HRValueUtils.ets

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,28 @@ export class HRValueUtils {
7272
return null
7373
}
7474

75+
static convertMapToObject(value: HippyAny): HippyAny {
76+
if(value instanceof Array) {
77+
return (value as Array<HippyAny>).map(item => HRValueUtils.convertMapToObject(item))
78+
} else if (value instanceof Map) {
79+
let map = value as Map<string, HippyAny>
80+
let obj = new Map<string, HippyAny>()
81+
map.forEach((v: HippyAny, k: string) => {
82+
obj[k] = HRValueUtils.convertMapToObject(v)
83+
})
84+
let map2: Map<string, HippyAny> = new Map(Object.entries(value))
85+
map2.forEach((v: HippyAny, k: string) => {
86+
obj[k] = HRValueUtils.convertMapToObject(v)
87+
})
88+
return obj
89+
} else if (typeof value === 'object' && value !== null) {
90+
let map: Map<string, HippyAny> = new Map(Object.entries(value))
91+
let obj = new Map<string, HippyAny>()
92+
map.forEach((v: HippyAny, k: string) => {
93+
obj[k] = HRValueUtils.convertMapToObject(v)
94+
})
95+
return obj
96+
}
97+
return value
98+
}
7599
}

0 commit comments

Comments
 (0)