diff options
author | Francesco <firefelix@gmail.com> | 2016-11-21 12:18:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-21 12:18:38 +0100 |
commit | 881f81327d9697f79f5ae95371d74a69b0b8a576 (patch) | |
tree | 65f4948240f425c80cbd0b7f6f2f20acdca9d2ae /src/TextareaAutosize.js | |
parent | 45859a32008fc5a5bb9a6c4dec4818a2bbfa7ba9 (diff) | |
parent | fe7aed49490b7d773d5b5bcde0e9e12f38f564a7 (diff) | |
download | react-autosize-textarea-881f81327d9697f79f5ae95371d74a69b0b8a576.zip react-autosize-textarea-881f81327d9697f79f5ae95371d74a69b0b8a576.tar.gz react-autosize-textarea-881f81327d9697f79f5ae95371d74a69b0b8a576.tar.bz2 |
Merge pull request #22 from eek/fix/ref-react15
FIX: Ref issue & Compatibility with React 15.4.0
Diffstat (limited to 'src/TextareaAutosize.js')
-rw-r--r-- | src/TextareaAutosize.js | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/src/TextareaAutosize.js b/src/TextareaAutosize.js index b96bb63..7619a03 100644 --- a/src/TextareaAutosize.js +++ b/src/TextareaAutosize.js @@ -1,5 +1,4 @@ import React from 'react'; -import ReactDOM from 'react-dom'; import autosize from 'autosize'; import { t, props } from 'tcomb-react'; @@ -22,22 +21,16 @@ export default class TextareaAutosize extends React.Component { rows: 1 }; - getTextareaDOMNode = () => ( - this.refs.textarea.nodeType === 1 ? - this.refs.textarea : - ReactDOM.findDOMNode(this.refs.textarea) - ); - componentDidMount() { - autosize(this.getTextareaDOMNode()); + autosize(this.textarea); if (this.props.onResize) { - this.getTextareaDOMNode().addEventListener(RESIZED, this.props.onResize); + this.textarea.addEventListener(RESIZED, this.props.onResize); } } componentWillUnmount() { if (this.props.onResize) { - this.getTextareaDOMNode().removeEventListener(RESIZED, this.props.onResize); + this.textarea.removeEventListener(RESIZED, this.props.onResize); } this.dispatchEvent(DESTROY); } @@ -45,7 +38,7 @@ export default class TextareaAutosize extends React.Component { dispatchEvent = (EVENT_TYPE, defer) => { const event = document.createEvent('Event'); event.initEvent(EVENT_TYPE, true, false); - const dispatch = () => this.getTextareaDOMNode().dispatchEvent(event); + const dispatch = () => this.textarea.dispatchEvent(event); if (defer) { setTimeout(dispatch); } else { @@ -58,7 +51,7 @@ export default class TextareaAutosize extends React.Component { render() { const { children, onResize, ...props } = this.props; // eslint-disable-line no-unused-vars return ( - <textarea {...props} ref='textarea'> + <textarea {...props} ref={(ref) => { this.textarea = ref; }}> {children} </textarea> ); |