diff --git a/client/packages/lowcoder-comps/package.json b/client/packages/lowcoder-comps/package.json
index 01733833e..029be11e2 100644
--- a/client/packages/lowcoder-comps/package.json
+++ b/client/packages/lowcoder-comps/package.json
@@ -1,6 +1,6 @@
 {
   "name": "lowcoder-comps",
-  "version": "0.0.26",
+  "version": "0.0.27",
   "type": "module",
   "license": "MIT",
   "dependencies": {
diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartComp.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartComp.tsx
index b6668f1c9..092a8d382 100644
--- a/client/packages/lowcoder-comps/src/comps/chartComp/chartComp.tsx
+++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartComp.tsx
@@ -120,7 +120,9 @@ ChartTmpComp = withViewFn(ChartTmpComp, (comp) => {
   
   const handleOnMapScriptLoad = () => {
     setMapScriptLoaded(true);
-    loadGoogleMapData();
+    setTimeout(() => {
+      loadGoogleMapData();
+    })
   }
 
   useEffect(() => {
diff --git a/client/packages/lowcoder/src/comps/comps/numberInputComp/numberInputComp.tsx b/client/packages/lowcoder/src/comps/comps/numberInputComp/numberInputComp.tsx
index cb5a7836e..58dcfe8c4 100644
--- a/client/packages/lowcoder/src/comps/comps/numberInputComp/numberInputComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/numberInputComp/numberInputComp.tsx
@@ -52,6 +52,8 @@ import {
 
 import { useContext } from "react";
 import { EditorContext } from "comps/editorState";
+import { migrateOldData } from "comps/generators/simpleGenerators";
+import { fixOldInputCompData } from "../textInputComp/textInputConstants";
 
 const getStyle = (style: InputLikeStyleType) => {
   return css`
@@ -372,7 +374,7 @@ const CustomInputNumber = (props: RecordConstructorToView<typeof childrenMap>) =
   );
 };
 
-const NumberInputTmpComp = (function () {
+let NumberInputTmpComp = (function () {
   return new UICompBuilder(childrenMap, (props) => {
     return props.label({
       required: props.required,
@@ -434,6 +436,8 @@ const NumberInputTmpComp = (function () {
     .build();
 })();
 
+NumberInputTmpComp = migrateOldData(NumberInputTmpComp, fixOldInputCompData);
+
 const NumberInputTmp2Comp = withMethodExposing(
   NumberInputTmpComp,
   refMethods([
diff --git a/client/packages/lowcoder/src/comps/comps/selectInputComp/checkboxComp.tsx b/client/packages/lowcoder/src/comps/comps/selectInputComp/checkboxComp.tsx
index f8b154e42..0cb4587a6 100644
--- a/client/packages/lowcoder/src/comps/comps/selectInputComp/checkboxComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/selectInputComp/checkboxComp.tsx
@@ -22,6 +22,8 @@ import { ValueFromOption } from "lowcoder-design";
 import { EllipsisTextCss } from "lowcoder-design";
 import { trans } from "i18n";
 import { RefControl } from "comps/controls/refControl";
+import { migrateOldData } from "comps/generators/simpleGenerators";
+import { fixOldInputCompData } from "../textInputComp/textInputConstants";
 
 export const getStyle = (style: CheckboxStyleType) => {
   return css`
@@ -126,7 +128,7 @@ const CheckboxGroup = styled(AntdCheckboxGroup) <{
   }}
 `;
 
-const CheckboxBasicComp = (function () {
+let CheckboxBasicComp = (function () {
   const childrenMap = {
     defaultValue: arrayStringExposingStateControl("defaultValue"),
     value: arrayStringExposingStateControl("value"),
@@ -176,6 +178,8 @@ const CheckboxBasicComp = (function () {
     .build();
 })();
 
+CheckboxBasicComp = migrateOldData(CheckboxBasicComp, fixOldInputCompData);
+
 export const CheckboxComp = withExposingConfigs(CheckboxBasicComp, [
   new NameConfig("value", trans("selectInput.valueDesc")),
   SelectInputInvalidConfig,
diff --git a/client/packages/lowcoder/src/comps/comps/selectInputComp/multiSelectComp.tsx b/client/packages/lowcoder/src/comps/comps/selectInputComp/multiSelectComp.tsx
index a8c2c0dc1..c45c0cdc6 100644
--- a/client/packages/lowcoder/src/comps/comps/selectInputComp/multiSelectComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/selectInputComp/multiSelectComp.tsx
@@ -14,9 +14,10 @@ import { SelectInputInvalidConfig, useSelectInputValidate } from "./selectInputC
 
 import { PaddingControl } from "../../controls/paddingControl";	
 import { MarginControl } from "../../controls/marginControl";
-import { useEffect, useRef } from "react";
+import { migrateOldData } from "comps/generators/simpleGenerators";
+import { fixOldInputCompData } from "../textInputComp/textInputConstants";
 
-const MultiSelectBasicComp = (function () {
+let MultiSelectBasicComp = (function () {
   const childrenMap = {
     ...SelectChildrenMap,
     defaultValue: arrayStringExposingStateControl("defaultValue", ["1", "2"]),
@@ -52,6 +53,8 @@ const MultiSelectBasicComp = (function () {
     .build();
 })();
 
+MultiSelectBasicComp = migrateOldData(MultiSelectBasicComp, fixOldInputCompData);
+
 export const MultiSelectComp = withExposingConfigs(MultiSelectBasicComp, [
   new NameConfig("value", trans("selectInput.valueDesc")),
   new NameConfig("inputValue", trans("select.inputValueDesc")),
diff --git a/client/packages/lowcoder/src/comps/comps/selectInputComp/radioComp.tsx b/client/packages/lowcoder/src/comps/comps/selectInputComp/radioComp.tsx
index 11bfceed0..4ab4add86 100644
--- a/client/packages/lowcoder/src/comps/comps/selectInputComp/radioComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/selectInputComp/radioComp.tsx
@@ -11,6 +11,8 @@ import {
 } from "./selectInputConstants";
 import { EllipsisTextCss, ValueFromOption } from "lowcoder-design";
 import { trans } from "i18n";
+import { fixOldInputCompData } from "../textInputComp/textInputConstants";
+import { migrateOldData } from "comps/generators/simpleGenerators";
 
 const getStyle = (style: RadioStyleType) => {
   return css`
@@ -93,7 +95,7 @@ const Radio = styled(AntdRadioGroup)<{
   }}
 `;
 
-const RadioBasicComp = (function () {
+let RadioBasicComp = (function () {
   return new UICompBuilder(RadioChildrenMap, (props) => {
     const [
       validateState,
@@ -129,6 +131,8 @@ const RadioBasicComp = (function () {
     .build();
 })();
 
+RadioBasicComp = migrateOldData(RadioBasicComp, fixOldInputCompData);
+
 export const RadioComp = withExposingConfigs(RadioBasicComp, [
   new NameConfig("value", trans("selectInput.valueDesc")),
   SelectInputInvalidConfig,
diff --git a/client/packages/lowcoder/src/comps/comps/selectInputComp/segmentedControl.tsx b/client/packages/lowcoder/src/comps/comps/selectInputComp/segmentedControl.tsx
index 73a7d4675..a73827c2a 100644
--- a/client/packages/lowcoder/src/comps/comps/selectInputComp/segmentedControl.tsx
+++ b/client/packages/lowcoder/src/comps/comps/selectInputComp/segmentedControl.tsx
@@ -25,6 +25,9 @@ import { RefControl } from "comps/controls/refControl";
 
 import { useContext } from "react";
 import { EditorContext } from "comps/editorState";
+import { migrateOldData } from "comps/generators/simpleGenerators";
+import { fixOldInputCompData } from "../textInputComp/textInputConstants";
+
 
 const getStyle = (style: SegmentStyleType) => {
   return css`
@@ -83,7 +86,7 @@ const SegmentChildrenMap = {
   ...formDataChildren,
 };
 
-const SegmentedControlBasicComp = (function () {
+let SegmentedControlBasicComp = (function () {
   return new UICompBuilder(SegmentChildrenMap, (props) => {
     const [
       validateState,
@@ -147,6 +150,8 @@ const SegmentedControlBasicComp = (function () {
     .build();
 })();
 
+SegmentedControlBasicComp = migrateOldData(SegmentedControlBasicComp, fixOldInputCompData);
+
 export const SegmentedControlComp = withExposingConfigs(SegmentedControlBasicComp, [
   new NameConfig("value", trans("selectInput.valueDesc")),
   SelectInputInvalidConfig,
diff --git a/client/packages/lowcoder/src/comps/comps/selectInputComp/selectComp.tsx b/client/packages/lowcoder/src/comps/comps/selectInputComp/selectComp.tsx
index 1a30f2522..50455b335 100644
--- a/client/packages/lowcoder/src/comps/comps/selectInputComp/selectComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/selectInputComp/selectComp.tsx
@@ -17,8 +17,10 @@ import {
 } from "./selectInputConstants";
 import { useRef } from "react";
 import { RecordConstructorToView } from "lowcoder-core";
+import { fixOldInputCompData } from "../textInputComp/textInputConstants";
+import { migrateOldData } from "comps/generators/simpleGenerators";
 
-const SelectBasicComp = (function () {
+let SelectBasicComp = (function () {
   const childrenMap = {
     ...SelectChildrenMap,
     defaultValue: stringExposingStateControl("defaultValue"),
@@ -55,6 +57,8 @@ const SelectBasicComp = (function () {
     .build();
 })();
 
+SelectBasicComp = migrateOldData(SelectBasicComp, fixOldInputCompData);
+
 export const SelectComp = withExposingConfigs(SelectBasicComp, [
   new NameConfig("value", trans("selectInput.valueDesc")),
   new NameConfig("inputValue", trans("select.inputValueDesc")),
diff --git a/client/packages/lowcoder/src/comps/comps/textInputComp/inputComp.tsx b/client/packages/lowcoder/src/comps/comps/textInputComp/inputComp.tsx
index fc34bc723..5eacf07cf 100644
--- a/client/packages/lowcoder/src/comps/comps/textInputComp/inputComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/textInputComp/inputComp.tsx
@@ -11,6 +11,7 @@ import styled from "styled-components";
 import { UICompBuilder } from "../../generators";
 import { FormDataPropertyView } from "../formComp/formDataConstants";
 import {
+  fixOldInputCompData,
   getStyle,
   inputRefMethods,
   TextInputBasicSection,
@@ -30,6 +31,7 @@ import { IconControl } from "comps/controls/iconControl";
 import { hasIcon } from "comps/utils";
 import { InputRef } from "antd/es/input";
 import { RefControl } from "comps/controls/refControl";
+import { migrateOldData } from "comps/generators/simpleGenerators";
 
 import React, { useContext } from "react";
 import { EditorContext } from "comps/editorState";
@@ -52,7 +54,7 @@ const childrenMap = {
   suffixIcon: IconControl,
 };
 
-export const InputComp = new UICompBuilder(childrenMap, (props) => {
+let InputBasicComp = new UICompBuilder(childrenMap, (props) => {
   const [inputProps, validateState] = useTextInputProps(props);
   return props.label({
     required: props.required,
@@ -108,3 +110,8 @@ export const InputComp = new UICompBuilder(childrenMap, (props) => {
     ...TextInputConfigs,
   ])
   .build();
+
+
+const InputComp = migrateOldData(InputBasicComp, fixOldInputCompData);
+
+export { InputComp };
diff --git a/client/packages/lowcoder/src/comps/comps/textInputComp/mentionComp.tsx b/client/packages/lowcoder/src/comps/comps/textInputComp/mentionComp.tsx
index 51815260f..9bad13d1e 100644
--- a/client/packages/lowcoder/src/comps/comps/textInputComp/mentionComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/textInputComp/mentionComp.tsx
@@ -12,6 +12,7 @@ import { UICompBuilder } from "../../generators";
 import { FormDataPropertyView } from "../formComp/formDataConstants";
 import {
   checkMentionListData,
+  fixOldInputCompData,
   textInputChildren,
 } from "./textInputConstants";
 import {
@@ -42,7 +43,7 @@ import { blurMethod, focusWithOptions } from "comps/utils/methodUtils";
 import {
   textInputValidate,
 } from "../textInputComp/textInputConstants";
-import { jsonControl } from "@lowcoder-ee/comps/controls/codeControl";
+import { jsonControl } from "comps/controls/codeControl";
 import {
   submitEvent,
   eventHandlerControl,
@@ -54,6 +55,7 @@ import {
 
 import React, { useContext } from "react";
 import { EditorContext } from "comps/editorState";
+import { migrateOldData } from "comps/generators/simpleGenerators";
 
 const Wrapper = styled.div<{
   $style: InputLikeStyleType;
@@ -267,12 +269,15 @@ let MentionTmpComp = (function () {
     .build();
 })();
 
+
 MentionTmpComp = class extends MentionTmpComp {
   override autoHeight(): boolean {
     return this.children.autoHeight.getView();
   }
 };
 
+MentionTmpComp = migrateOldData(MentionTmpComp, fixOldInputCompData);
+
 const TextareaTmp2Comp = withMethodExposing(
   MentionTmpComp,
   refMethods([focusWithOptions, blurMethod])
diff --git a/client/packages/lowcoder/src/comps/comps/textInputComp/passwordComp.tsx b/client/packages/lowcoder/src/comps/comps/textInputComp/passwordComp.tsx
index b5c3d701d..7659cdf72 100644
--- a/client/packages/lowcoder/src/comps/comps/textInputComp/passwordComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/textInputComp/passwordComp.tsx
@@ -13,6 +13,7 @@ import { LabelControl } from "../../controls/labelControl";
 import { UICompBuilder, withDefault } from "../../generators";
 import { FormDataPropertyView } from "../formComp/formDataConstants";
 import {
+  fixOldInputCompData,
   getStyle,
   inputRefMethods,
   TextInputBasicSection,
@@ -40,6 +41,7 @@ import { hasIcon } from "comps/utils";
 import { RefControl } from "comps/controls/refControl";
 import React, { useContext } from "react";
 import { EditorContext } from "comps/editorState";
+import { migrateOldData } from "comps/generators/simpleGenerators";
 
 const PasswordStyle = styled(InputPassword)<{
   $style: InputLikeStyleType;
@@ -47,7 +49,7 @@ const PasswordStyle = styled(InputPassword)<{
   ${(props) => props.$style && getStyle(props.$style)}
 `;
 
-const PasswordTmpComp = (function () {
+let PasswordTmpComp = (function () {
   const childrenMap = {
     ...textInputChildren,
     viewRef: RefControl<InputRef>,
@@ -111,6 +113,8 @@ const PasswordTmpComp = (function () {
     .build();
 })();
 
+PasswordTmpComp = migrateOldData(PasswordTmpComp, fixOldInputCompData);
+
 const PasswordTmp2Comp = withMethodExposing(PasswordTmpComp, inputRefMethods);
 
 export const PasswordComp = withExposingConfigs(PasswordTmp2Comp, [
diff --git a/client/packages/lowcoder/src/comps/comps/textInputComp/textAreaComp.tsx b/client/packages/lowcoder/src/comps/comps/textInputComp/textAreaComp.tsx
index e11027a69..fe6a4ad24 100644
--- a/client/packages/lowcoder/src/comps/comps/textInputComp/textAreaComp.tsx
+++ b/client/packages/lowcoder/src/comps/comps/textInputComp/textAreaComp.tsx
@@ -10,6 +10,7 @@ import { AutoHeightControl } from "../../controls/autoHeightControl";
 import { UICompBuilder, withDefault } from "../../generators";
 import { FormDataPropertyView } from "../formComp/formDataConstants";
 import {
+  fixOldInputCompData,
   getStyle,
   TextInputBasicSection,
   textInputChildren,
@@ -35,6 +36,7 @@ import { blurMethod, focusWithOptions } from "comps/utils/methodUtils";
 
 import React, { useContext } from "react";
 import { EditorContext } from "comps/editorState";
+import { migrateOldData } from "comps/generators/simpleGenerators";
 
 const TextAreaStyled = styled(TextArea)<{
   $style: InputLikeStyleType;
@@ -126,6 +128,8 @@ TextAreaTmpComp = class extends TextAreaTmpComp {
   }
 };
 
+TextAreaTmpComp = migrateOldData(TextAreaTmpComp, fixOldInputCompData);
+
 const TextareaTmp2Comp = withMethodExposing(
   TextAreaTmpComp,
   refMethods([focusWithOptions, blurMethod])
diff --git a/client/packages/lowcoder/src/comps/comps/textInputComp/textInputConstants.tsx b/client/packages/lowcoder/src/comps/comps/textInputComp/textInputConstants.tsx
index 1d01266af..9c9d17cbb 100644
--- a/client/packages/lowcoder/src/comps/comps/textInputComp/textInputConstants.tsx
+++ b/client/packages/lowcoder/src/comps/comps/textInputComp/textInputConstants.tsx
@@ -305,3 +305,17 @@ export function checkMentionListData(data: any) {
   }
   return data
 }
+
+// separate defaultValue and value for old components
+export function fixOldInputCompData(oldData: any) {
+  if (!oldData) return oldData;
+  if (Boolean(oldData.value) && !Boolean(oldData.defaultValue)) {
+    const value = oldData.value;
+    return {
+      ...oldData,
+      defaultValue: value,
+      value: '',
+    };
+  }
+  return oldData;
+}