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 | |
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
-rw-r--r-- | package.json | 4 | ||||
-rw-r--r-- | src/TextareaAutosize.js | 17 |
2 files changed, 7 insertions, 14 deletions
diff --git a/package.json b/package.json index cbe0e77..90450f6 100644 --- a/package.json +++ b/package.json @@ -51,9 +51,9 @@ "karma-webpack": "^1.7.0", "lodash": "^3.10.1", "mocha": "^2.4.5", - "react": "^0.14", + "react": "^15.4", "react-addons-test-utils": "^0.14.8 || ^15.0.0", - "react-dom": "^0.14", + "react-dom": "^15.4", "react-readme-generator": "0.0.1", "require-dir": "^0.3.0", "webpack": "^1.12.12", 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> ); |