ソースを参照

fix: textarea 渲染问题处理,collapse 单测修复 (#1892)

Ymm 3 年 前
コミット
d36f48bd31

+ 6 - 22
src/packages/__VUE/collapse/index.taro.vue

@@ -116,34 +116,18 @@ export default create({
             if (typeof newval == 'number' || typeof newval == 'string') {
             if (typeof newval == 'number' || typeof newval == 'string') {
               if (domsProps[index]) {
               if (domsProps[index]) {
                 if (domsProps[index].props) {
                 if (domsProps[index].props) {
-                  if (newval == domsProps[index].props.name) {
-                    item.changeOpen(true);
-                  } else {
-                    item.changeOpen(false);
-                  }
+                  item.changeOpen(newval == domsProps[index].props.name ? true : false);
                 } else {
                 } else {
-                  if (newval == item.name) {
-                    item.changeOpen(true);
-                  } else {
-                    item.changeOpen(false);
-                  }
+                  item.changeOpen(newval == item.name ? true : false);
                 }
                 }
               } else {
               } else {
-                if (newval == item.name) {
-                  item.changeOpen(true);
-                } else {
-                  item.changeOpen(false);
-                }
+                item.changeOpen(newval == item.name ? true : false);
               }
               }
             } else if (Object.values(newval) instanceof Array) {
             } else if (Object.values(newval) instanceof Array) {
-              if (
+              const isOpen =
                 newval.indexOf(Number(domsProps[index].props.name)) > -1 ||
                 newval.indexOf(Number(domsProps[index].props.name)) > -1 ||
-                newval.indexOf(String(domsProps[index].props.name)) > -1
-              ) {
-                item.changeOpen(true);
-              } else {
-                item.changeOpen(false);
-              }
+                newval.indexOf(String(domsProps[index].props.name)) > -1;
+              item.changeOpen(isOpen);
             }
             }
             item.animation();
             item.animation();
           });
           });

+ 3 - 10
src/packages/__VUE/collapse/index.vue

@@ -62,17 +62,10 @@ export default create({
         let doms: any = collapseChldren.value;
         let doms: any = collapseChldren.value;
         Array.from(doms).forEach((item: any) => {
         Array.from(doms).forEach((item: any) => {
           if (typeof newval == 'number' || typeof newval == 'string') {
           if (typeof newval == 'number' || typeof newval == 'string') {
-            if (newval == item.name) {
-              item.changeOpen(true);
-            } else {
-              item.changeOpen(false);
-            }
+            item.changeOpen(newval == item.name ? true : false);
           } else if (Object.values(newval) instanceof Array) {
           } else if (Object.values(newval) instanceof Array) {
-            if (newval.indexOf(Number(item.name)) > -1 || newval.indexOf(String(item.name)) > -1) {
-              item.changeOpen(true);
-            } else {
-              item.changeOpen(false);
-            }
+            const isOpen = newval.indexOf(Number(item.name)) > -1 || newval.indexOf(String(item.name)) > -1;
+            item.changeOpen(isOpen);
           }
           }
           item.animation();
           item.animation();
         });
         });

+ 8 - 4
src/packages/__VUE/collapseitem/index.vue

@@ -257,10 +257,14 @@ export default create({
       var observer = new MutationObserver(() => {
       var observer = new MutationObserver(() => {
         animation();
         animation();
       });
       });
-      observer.observe(document.getElementsByClassName('collapse-wrapper')[0], {
-        childList: true,
-        subtree: true
-      });
+      const ele = document.getElementsByClassName('collapse-wrapper')[0];
+      if (ele) {
+        observer.observe(ele, {
+          childList: true,
+          subtree: true
+        });
+      }
+
       init();
       init();
       // proxyData.classDirection = parent.props.expandIconPosition;
       // proxyData.classDirection = parent.props.expandIconPosition;
       // if (parent.props.icon && parent.props.icon != 'none') {
       // if (parent.props.icon && parent.props.icon != 'none') {

+ 8 - 6
src/packages/__VUE/textarea/index.taro.vue

@@ -201,12 +201,14 @@ export default create({
     onMounted(() => {
     onMounted(() => {
       if (props.autosize) {
       if (props.autosize) {
         Taro.nextTick(() => {
         Taro.nextTick(() => {
-          if (Taro.getEnv() === 'ALIPAY') {
-            getRefWidth();
-            copyHeight();
-          } else {
-            getRefHeight();
-          }
+          setTimeout(() => {
+            if (Taro.getEnv() === 'ALIPAY') {
+              getRefWidth();
+              copyHeight();
+            } else {
+              getRefHeight();
+            }
+          }, 300);
         });
         });
       }
       }
     });
     });