Skip to content

Commit 374aa3b

Browse files
Merge pull request #95 from Detaysoft/leak-fix
Memory leak fix
2 parents fa52fca + 5eba433 commit 374aa3b

3 files changed

Lines changed: 19 additions & 6 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-chat-elements",
3-
"version": "10.4.2",
3+
"version": "10.4.3",
44
"description": "Reactjs chat components",
55
"author": "Avare Kodcu <abdurrahmaneker58@gmail.com>",
66
"main": "dist/main.js",

src/Avatar/Avatar.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@ export class Avatar extends Component {
1212
this.requestImage = this.requestImage.bind(this);
1313
}
1414

15+
componentDidMount() {
16+
this._isMounted = true;
17+
}
18+
19+
componentWillUnmount() {
20+
this._isMounted = false;
21+
}
22+
1523
isLoaded(src) {
1624
return loadedAvatars.indexOf(src) !== -1;
1725
}
@@ -23,7 +31,9 @@ export class Avatar extends Component {
2331
var loaded = () => {
2432
loadedAvatars.push(src);
2533
delete self.loading;
26-
self.setState({});
34+
if (this._isMounted !== false) {
35+
self.setState({});
36+
}
2737
};
2838

2939
var img = document.createElement('img');
@@ -33,8 +43,8 @@ export class Avatar extends Component {
3343
}
3444

3545
render() {
36-
var src = this.props.src;
37-
var isLazyImage = false;
46+
let src = this.props.src;
47+
let isLazyImage = false;
3848

3949
if (this.props.lazyLoadingImage) {
4050
isLazyImage = true;

src/MessageList/MessageList.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ export class MessageList extends Component {
1515
scrollBottom: 0,
1616
downButton: false,
1717
};
18+
19+
this.loadRef = this.loadRef.bind(this);
20+
this.onScroll = this.onScroll.bind(this);
1821
}
1922

2023
checkScroll() {
@@ -120,8 +123,8 @@ export class MessageList extends Component {
120123
<div
121124
className={classNames(['rce-container-mlist', this.props.className])}>
122125
<div
123-
ref={this.loadRef.bind(this)}
124-
onScroll={this.onScroll.bind(this)}
126+
ref={this.loadRef}
127+
onScroll={this.onScroll}
125128
className='rce-mlist'>
126129
{
127130
this.props.dataSource.map((x, i) => (

0 commit comments

Comments
 (0)