React Dev tools show my Component as Unknown

假装没事ソ 提交于 2020-06-24 05:39:22

问题


I have the following simple component:

import React from 'react'
import '../css.scss'

export default (props) => {
  let activeClass = props.out ? 'is-active' : ''
  return (
    <div className='hamburgerWrapper'>
      <button className={'hamburger hamburger--htla ' + activeClass}>
        <span />
      </button>
    </div>
  )
}

When I look for it in the react dev tools, I see:

Is this because I need to extend React component? Do I need to create this as a variable and do so?


回答1:


This happens when you export an anonymous function as your component. If you name the function (component) and then export it, it will show up in the React Dev Tools properly.

const MyComponent = (props) => {}
export default MyComponent;



回答2:


To add to Michael Jaspers answer, if you want to use a named import (instead of default export), you can do like so:

const MyComponent = props => <div />
export { MyComponent }

The component will show in React DevTools with the correct name.

Note: If you had exported the expression directly:

export const MyComponent = props => <div />

This would then show as Anonymous or Unknown in React DevTools




回答3:


I realise the original question has been correctly answered already, but I just wanted to note a very similar issue you may encounter if using React.memo() or similar function. Consider the following code:

const MyComponent = React.memo(props => <div>Hello</div>)
export default MyComponent

The component will still display as Anonymous in devtools and certain React error messages (e.g. prop-types validation).

Ensuring that the Component is defined before trying to memoise it resolves this issue, e.g:

const MyComponent = props => <div>Hello</div>
export default React.memo(MyComponent)



回答4:


Currently there's no way to change it from showing up as <Unknown> in the devtools inspector without naming the function before exporting it, as Michael said. But if this github issue gets addressed, there may be in the future.

https://github.com/facebook/react-devtools/issues/1294



来源:https://stackoverflow.com/questions/43458971/react-dev-tools-show-my-component-as-unknown

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!