0
我已經採取了下面的代碼:https://www.meteor.com/tutorials/react/adding-user-accounts。
我可以代替這種特殊情況下
ReactDOM.findDOMNode(this.refs.container))
與
this.refs.container
沒有在未來的任何隱藏的錯誤?在這種情況下需要ReactDOM.findDOMNode嗎?
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import { Template } from 'meteor/templating';
import { Blaze } from 'meteor/blaze';
export default class AccountsUIWrapper extends Component {
componentDidMount() {
// Use Meteor Blaze to render login buttons
this.view = Blaze.render(Template.loginButtons,
ReactDOM.findDOMNode(this.refs.container));
}
componentWillUnmount() {
// Clean up Blaze view
Blaze.remove(this.view);
}
render() {
// Just render a placeholder container that will be filled in
return <span ref="container" />;
}
}
,或者甚至改變使用回調函數:
....
export default class AccountsUIWrapper extends Component {
componentDidMount() {
// Use Meteor Blaze to render login buttons
this.view = Blaze.render(Template.loginButtons,
this.container);
}
....
render() {
// Just render a placeholder container that will be filled in
return <span ref={(node) => (this.container = node) />;
}
}
什麼* ReactDOM.findDOMNode *的正確方法?在這種情況下忽略它是否安全? –
是的,因爲你仍然在使用字符串參考。 Ref回調是最好的和建議的方式 –