我实际上正在更新https://github.com/ezequiel/react-typeahead-component此组件兼容反应> = 0.14但是在更改方法时我遇到了一个错误:
交换this.getDOMnode
因其this.findDOMnode
弃用的原因导致错误:Uncaught TypeError: this.findDOMNode is not a function
所以我尝试了很多关于React不会在0.14中自动绑定this
到几个函数。但它并没有真正帮助我。
module.exports = React.createClass({
displayName: 'Aria Status',
propTypes: process.env.NODE_ENV === 'production' ? {} : {
message: React.PropTypes.string
},
componentDidMount: function() {
var _this = this;
_this.setTextContent(_this.props.message).bind(this);
},
componentDidUpdate: function() {
var _this = this;
_this.setTextContent(_this.props.message).bind(this);
},
render: function() {
return (
React.createElement("span", {
role: "status",
"aria-live": "polite",
style: {
left: '-9999px',
position: 'absolute'
}
})
);
},
setTextContent: function(textContent) {
this.findDOMNode().textContent = textContent || '';
}
});
也许有人可以指点我继续前进!
答案 0 :(得分:1)
在React v 0.14中findDOMNode
已弃用,您可以尝试使用refs
,就像这样
setTextContent: function(textContent) {
this.refs.element.textContent = textContent || '';
}
setTextContent: function(textContent) {
ReactDOM.findDOMNode(this).textContent = textContent || '';
}