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回调是最好的和建议的方式 –