From 37026376f1d027a099e6590ab317b214ac70c08f Mon Sep 17 00:00:00 2001 From: lostsory <2462393505@qq.com> Date: Sat, 30 Nov 2019 09:58:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?h5=20image=E5=9C=A8unmount=E6=97=B6?= =?UTF-8?q?=E5=8F=96=E6=B6=88IntersectionObserver=E7=9B=91=E5=90=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/taro-components/src/components/image/index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/taro-components/src/components/image/index.js b/packages/taro-components/src/components/image/index.js index 51ebbdfaa1a7..f9ee7581c099 100644 --- a/packages/taro-components/src/components/image/index.js +++ b/packages/taro-components/src/components/image/index.js @@ -13,11 +13,12 @@ class Image extends Nerv.Component { aspectFillMode: 'width' } this.imageOnLoad = this.imageOnLoad.bind(this) + this.observer = {} } componentDidMount () { if (this.props.lazyLoad) { - const lazyImg = new IntersectionObserver((entries, observer) => { + this.observer = new IntersectionObserver((entries, observer) => { // 异步 api 关系 if (entries[entries.length - 1].isIntersecting) { this.setState({ isLoaded: true }, () => { @@ -28,11 +29,12 @@ class Image extends Nerv.Component { }, { rootMargin: '300px 0px' }) - lazyImg.observe(this.imgRef) + this.observer.observe(this.imgRef) } } componentWillUnMount () { + this.observer.disconnect && this.observer.disconnect() } imageOnLoad (e) { From a816f2e1210039fe07ad13d5f932389db6a747f1 Mon Sep 17 00:00:00 2001 From: lostsory <2462393505@qq.com> Date: Tue, 3 Dec 2019 15:58:58 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/taro-components/src/components/image/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/taro-components/src/components/image/index.js b/packages/taro-components/src/components/image/index.js index f9ee7581c099..935153d48584 100644 --- a/packages/taro-components/src/components/image/index.js +++ b/packages/taro-components/src/components/image/index.js @@ -22,7 +22,6 @@ class Image extends Nerv.Component { // 异步 api 关系 if (entries[entries.length - 1].isIntersecting) { this.setState({ isLoaded: true }, () => { - lazyImg.unobserve(this.imgRef) Nerv.findDOMNode(this).children[0].src = this.props.src }) }