是的,你建议的解决方案
render: function () {
var home = this.state.remove_home ? null :
return (
{home}
),handleNavbarClick: function () {
this.setState({remove_home: true});
}
或多或少是使用React处理此问题的“正确”方法.请记住,渲染的目的是描述组件在任何给定点上的查看方式.接触DOM并执行手动操作,或执行其他类型的命令性工作,如“删除”元素,几乎总是错误的做法.
如果您关心语法,可以考虑内联或提取逻辑:
render: function () {
return (
{this.state.remove_home ? null : }
),
要么
render: function () {
return (
{!this.state.remove_home && }
),
要么
render: function () {
return (
{this.renderHome()}
),renderHome: function() {
if (!this.state.remove_home) {
}
}