diff --git a/frameworks/bridge/declarative_frontend/jsview/js_form.cpp b/frameworks/bridge/declarative_frontend/jsview/js_form.cpp index deaa3de228043f1d87a8ac9bed50fcaaceb8e17b..e6bdbc63becbf5410b4ddeb5a81267ea8ae8777c 100644 --- a/frameworks/bridge/declarative_frontend/jsview/js_form.cpp +++ b/frameworks/bridge/declarative_frontend/jsview/js_form.cpp @@ -94,22 +94,24 @@ void JSForm::Create(const JSCallbackInfo& info) if (!ParseFormId(formInfo, id)) { return; } - formInfo.cardName = name->ToString(); - formInfo.bundleName = bundle->ToString(); - formInfo.abilityName = ability->ToString(); - formInfo.moduleName = module->ToString(); - formInfo.exemptAppLock = exemptAppLock->ToBoolean(); - if (!dimension->IsNull() && !dimension->IsEmpty()) { + formInfo.cardName = name->IsString() ? name->ToString() : ""; + formInfo.bundleName = bundle->IsString() ? bundle->ToString() : ""; + formInfo.abilityName = ability->IsString() ? ability->ToString() : ""; + formInfo.moduleName = module->IsString() ? module->ToString() : ""; + if (exemptAppLock->IsBoolean()) { + formInfo.exemptAppLock = exemptAppLock->ToBoolean(); + } + if (!dimension->IsNull() && dimension->IsNumber()) { formInfo.dimension = dimension->ToNumber(); } - formInfo.temporary = temporary->ToBoolean(); + formInfo.temporary = temporary->IsBoolean() ? temporary->ToBoolean() : false; if (!wantValue->IsNull() && wantValue->IsObject()) { formInfo.wantWrap = CreateWantWrapFromNapiValue(wantValue); } - if (!renderingMode->IsNull() && !renderingMode->IsEmpty()) { + if (!renderingMode->IsNull() && renderingMode->IsNumber()) { formInfo.renderingMode = renderingMode->ToNumber(); } - if (!shape->IsNull() && !shape->IsEmpty()) { + if (!shape->IsNull() && shape->IsNumber()) { formInfo.shape = shape->ToNumber(); } FormModel::GetInstance()->Create(formInfo);