javascript - برنامج - flux معنى




ReactJS findDOMNode و getDOMNode ليست وظائف (2)

أعمل على إنشاء تطبيق ويب باستخدام ReactJS و Flux وأحاول الحصول على عقدة div الحالية باستخدام الطريقة findDOMNode وأحصل على الخطأ التالي:

Uncaught TypeError: React.findDOMNode is not a function

لذلك ، حاولت استخدام getDOMNode واحصل على نفس الخطأ:

Uncaught TypeError: React.getDOMNode is not a function

أنا أستخدم npm لإنشاء JS ، الشفرة حيث أستخدم هذه الطرق:

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

تصحيح

كما هو موضح في الإجابات ، فإن مكتبة DOM اعتبارًا من الإصدار v0.14.0 خارج نطاق التفاعل ، لذلك أجريت بعض التغييرات على شفرتي:

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;

لكن لدي مشكلة أخرى:

Uncaught Error: Invariant Violation: findDOMNode was called on an unmounted component.

تم التغيير في أحدث رد:

ReactDOM.findDOMNode

https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode

في حزمة react-dom . لاحظ أنه تم نقل ReactDOMServer أيضًا إلى حزمة أخرى. ربما في التحضير لواجهات برمجة التطبيقات الخاصة بـ React ذات الصلة (مثل React native).


في رد فعل تم نقل مكتبة DOM v0.14 من React.js نفسها. هناك بعض التغييرات في مرحلة ما قبل الميلاد ، ولكن إذا كنت قد كتبت شفرتك بطريقة صحيحة ، فلن تكون التغييرات مؤلمة. يرجى قراءة هنا للحصول على نظرة عامة كاملة: https://facebook.github.io/react/blog/#major-changes







flux