Browse Source

修复表单未渲染的问题

xjj 2 năm trước cách đây
mục cha
commit
56d0611eda

+ 3 - 3
src/components/AuditForm/ItemAttribute.js

@@ -361,7 +361,7 @@ function SelectItem(props) {
     let tempValue = [
       ...localValue,
       {
-        id: +new Date(),
+        id: item,
         value: item,
       },
     ];
@@ -382,7 +382,7 @@ function SelectItem(props) {
     onChange(tempValue);
   };
   useEffect(() => {
-    let tempValue = value.map((item) => ({ id: +new Date(), value: item }));
+    let tempValue = value.map((item) => ({ id: item, value: item }));
     setLocalValue(tempValue);
     onChange(tempValue);
   }, []);
@@ -419,7 +419,7 @@ function SelectItem(props) {
               alignItems: 'center',
               marginBottom: 5,
             }}
-            key={item.id}
+            key={item.value}
           >
             <Input
               style={{ marginRight: 10 }}

+ 14 - 6
src/components/AuditForm/index.js

@@ -11,13 +11,13 @@ function AuditForm(props) {
   const [select, setSelect] = useState(-1);
   const [visible, setVisible] = useState(false);
 
-  const handleAddItem = item => {
+  const handleAddItem = (item) => {
     const formItem = generateItem(item);
     handleChangeList([...formList, formItem]);
     setVisible(false);
   };
 
-  const generateItem = item => {
+  const generateItem = (item) => {
     let newItem = {
       ...item,
       props: { ...item.props, id: `${item.componentName}_${uuidv4()}` },
@@ -26,13 +26,13 @@ function AuditForm(props) {
     return newItem;
   };
 
-  const onChangeAttribute = newItem => {
+  const onChangeAttribute = (newItem) => {
     let oldValue = formList[select].props;
     formList[select].props = { ...oldValue, ...newItem };
     handleChangeList([...formList]);
   };
 
-  const handleChangeList = list => {
+  const handleChangeList = (list) => {
     setFormList(list);
     onChange?.(list);
   };
@@ -56,8 +56,16 @@ function AuditForm(props) {
           marginTop: 20,
         }}
       >
-        <FormContent onSelect={setSelect} onChange={handleChangeList} list={formList}></FormContent>
-        <ItemAttribute item={formList[select]} onChange={onChangeAttribute}></ItemAttribute>
+        <FormContent
+          onSelect={setSelect}
+          onChange={handleChangeList}
+          list={formList}
+        ></FormContent>
+        <ItemAttribute
+          key={select}
+          item={formList[select]}
+          onChange={onChangeAttribute}
+        ></ItemAttribute>
       </div>
       <ComponentLibrary
         onOk={handleAddItem}