Error handling 如何获取父组件';她叫什么名字?
我希望为我的一些组件提供良好的错误消息,如React,例如: 警告:数组中的每个子级都应该有一个唯一的“键”道具检查MyComponent的渲染方法。有关详细信息,请参阅Error handling 如何获取父组件';她叫什么名字?,error-handling,reactjs,Error Handling,Reactjs,我希望为我的一些组件提供良好的错误消息,如React,例如: 警告:数组中的每个子级都应该有一个唯一的“键”道具检查MyComponent的渲染方法。有关详细信息,请参阅 此消息提供有关错误上下文的一些信息。我知道我可以在调试器中找到它,但我想让我和我的程序员同事更容易调试。虽然不清楚如何将其用于您在评论中提到的Promise组件,但您可以尝试以下方法: var componentName = this.constructor.displayName || this.constructor.na
此消息提供有关错误上下文的一些信息。我知道我可以在调试器中找到它,但我想让我和我的程序员同事更容易调试。虽然不清楚如何将其用于您在评论中提到的
Promise
组件,但您可以尝试以下方法:
var componentName = this.constructor.displayName || this.constructor.name || undefined;
它的灵感来自ReactJS代码中的函数,该函数在React元素验证期间查看构造函数以构建名称
但是,如果您想要一个父级的名称,这是不可能通过任何有文档记录的方式实现的,并且如果您根据特定的内部实现构建代码,这很可能是脆弱的。这是一个单向的信息流,因此孩子不需要通过正常的体系结构与父母建立链接
如果需要父名称,则需要获取值并将其传递给子项,我确信这是不可取的 你为什么需要这个?React组件作用于它们接收的属性及其内部状态,而不是它们所属的层次结构。由于不确定打印父组件是否有助于调试,我创建了一个用于处理承诺的组件。我喜欢它,但我最终几乎在所有地方都使用了它,因此我想改进它的错误处理。我假设promise处理程序是由父组件发送的,如果是这样的话,那么大多数问题都源于处理程序,而这些都在父级,你知道你在哪里。
this.constructor.displayName
打印这个组件名称(这很好,但不是我想要的,因为我想要父组件),并且constructor.name
对我来说总是Window
(很可能你的意思是this.constructor.name
那里)。明白了。我不明白您希望家长的价值是什么,因为您的问题中没有描述(示例显示了我提供的内容)。我更新了我的答案,说不可能使用任何支持的方法。功能组件如何?