在 React 中获取组件名称

新手上路,请多包涵

我正在开发一个 React 应用程序。我有一个加载组件,这是一个等待的小动画。我想根据调用它的组件在这个 Loading 组件中添加一条消息。

这是我如何调用我的加载组件(this.state.displayLoading 为真或假):

 class LoginForm extends React.Component {
    render() {
        return (
            <div className="login-form-root">
                 {this.state.displayLoading && <Loading loadingFrom={?}/>}
            </div>
        );
    }
}

我想在我的变量 loadingFrom 中获取“LoginForm”,它是类名。也许这不是正确的方法。

原文由 Vincent ROSSIGNOL 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

您不需要它是动态的,因为您自己编写组件并且可以将其作为字符串传递

class LoginForm extends React.Component {
    render() {
        return (
            <div className="login-form-root">
                 {this.state.displayLoading && <Loading loadingFrom="LoginForm "/>}
            </div>
        );
    }
}

但是,如果您仍然需要访问组件的名称,您可以在组件上定义 displayName 属性

class LoginForm extends React.Component {
   static displayName = 'LoginForm';
    render() {
        return (
            <div className="login-form-root">
                 {this.state.displayLoading && <Loading loadingFrom="LoginForm "/>}
            </div>
        );
    }
}

并像 Component.displayName 一样访问它。

原文由 Shubham Khatri 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进