feat:Add InconsistProperty decorator because sometimes the property in js side cannot be consist with natiive side
This commit is contained in:
@@ -125,8 +125,13 @@ var __decorate$d = (undefined && undefined.__decorate) || function (decorators,
|
||||
var __metadata$d = (undefined && undefined.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
const PROP_CONSIST = 1;
|
||||
const PROP_INCONSIST = 2;
|
||||
function Property(target, propKey) {
|
||||
Reflect.defineMetadata(propKey, true, target);
|
||||
Reflect.defineMetadata(propKey, PROP_CONSIST, target);
|
||||
}
|
||||
function InconsistProperty(target, propKey) {
|
||||
Reflect.defineMetadata(propKey, PROP_INCONSIST, target);
|
||||
}
|
||||
class View {
|
||||
constructor() {
|
||||
@@ -150,7 +155,10 @@ class View {
|
||||
set: (target, p, v, receiver) => {
|
||||
const oldV = Reflect.get(target, p, receiver);
|
||||
const ret = Reflect.set(target, p, v, receiver);
|
||||
if (Reflect.getMetadata(p, target) && oldV !== v) {
|
||||
if (Reflect.getMetadata(p, target) === PROP_CONSIST && oldV !== v) {
|
||||
receiver.onPropertyChanged(p.toString(), oldV, v);
|
||||
}
|
||||
else if (Reflect.getMetadata(p, target) === PROP_INCONSIST) {
|
||||
receiver.onPropertyChanged(p.toString(), oldV, v);
|
||||
}
|
||||
return ret;
|
||||
@@ -2736,6 +2744,7 @@ exports.Gravity = Gravity;
|
||||
exports.Group = Group;
|
||||
exports.HLayout = HLayout;
|
||||
exports.Image = Image;
|
||||
exports.InconsistProperty = InconsistProperty;
|
||||
exports.Input = Input;
|
||||
exports.LEFT = LEFT;
|
||||
exports.LayoutConfigImpl = LayoutConfigImpl;
|
||||
|
||||
Reference in New Issue
Block a user