张延森 5 年前
父节点
当前提交
20e36c6a73
共有 1 个文件被更改,包括 16 次插入7 次删除
  1. 16
    7
      src/components/uploadImage/ImageUpload.jsx

+ 16
- 7
src/components/uploadImage/ImageUpload.jsx 查看文件

@@ -11,15 +11,24 @@ class ImageUpload extends React.Component {
11 11
     loading: false,
12 12
     previewVisible: false,
13 13
     previewImage: '',
14
-    fileList: [],
14
+    fileList: this.getPropsFileList(),
15 15
   };
16 16
 
17
-  componentDidUpdate() {  this.setState({ fileList: [{
18
-    uid: '-1',
19
-    name: 'image.png',
20
-    status: 'done',
21
-    url: this.props.value,
22
-  }] })  }
17
+  componentDidUpdate(prevProps) {
18
+    // 直接 setState 会死循环
19
+    if (prevProps.value !== this.props.value) {
20
+      this.setState({ fileList: this.getPropsFileList() })
21
+    }
22
+  }
23
+
24
+  getPropsFileList() {
25
+    return !this.props.value ? [] : [{
26
+      uid: '-1',
27
+      name: 'image.png',
28
+      status: 'done',
29
+      url: this.props.value,
30
+    }]
31
+  }
23 32
 
24 33
 
25 34
   handleChange = ({ file, fileList }) => {