Tôi đang xây dựng một ứng dụng web với ReactJS và Flux và tôi đang cố gắng để có được những nút của div hiện tại của tôi bằng cách sử dụng phương pháp findDOMNode và tôi nhận được lỗi sau:ReactJS findDOMNode và getDOMNode không chức năng
Uncaught TypeError: React.findDOMNode is not a function
Vì vậy, tôi cố gắng sử dụng getDOMNode và tôi nhận được lỗi rất giống nhau:
Uncaught TypeError: React.getDOMNode is not a function
tôi đang sử dụng NPM để xây dựng JS, mã nơi tôi sử dụng các phương pháp:
var React = require('react');
var stores = require('../stores');
var MessagesUserContainer = require('./messageusercontainer');
var ChatStore = stores.ChatStore;
var owner = stores.getOwner();
var MessagesList = React.createClass({
getInitialState: function(){
return {'muc': []};
},
componentDidUpdate: function(){
var node = React.findDOMNode(this); //Error here
node.scrollTop = node.scrollHeight;
},
render: function(){
return (
<div className="chatScroll">
{this.state.muc}
</div>
)
}
});
module.exports = MessagesList;
ReactJS verion: 0.14.0
EDIT
Như đã chỉ ra trong câu trả lời, thư viện DOM như của v0.14.0 là ra khỏi lõi Phản ứng, vì vậy tôi làm một vài thay đổi đối với mã của tôi:
var React = require('react');
var ReactDOM = require('react-dom');
var stores = require('../stores');
var MessagesUserContainer = require('./messageusercontainer');
var ChatStore = stores.ChatStore;
var owner = stores.getOwner();
var MessagesList = React.createClass({
getInitialState: function(){
return {'muc': []};
},
componentDidUpdate: function(){
var node = ReactDOM.findDOMNode(this);
node.scrollTop = node.scrollHeight;
},
render: function(){
return (
<div className="chatScroll">
{this.state.muc}
</div>
)
}
});
module.exports = MessagesList;
Nhưng tôi gặp một vấn đề khác:
Uncaught Error: Invariant Violation: findDOMNode was called on an unmounted component.
Cảm ơn bạn, tôi không biết họ đã tạo gói mới. –
Giúp đỡ người đàn ông, bây giờ tôi đã nhận lỗi này: Lỗi không bắt buộc: Vi phạm bất biến: findDOMNode được gọi trên thành phần chưa được gắn kết. –
Có lẽ 'ReactDOM.render'? – user120242