簡體   English   中英

React Dev 工具將我的組件顯示為未知

[英]React Dev tools show my Component as Unknown

我有以下簡單的組件:

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>
  )
}

當我在 react 開發工具中尋找它時,我看到:

在此處輸入圖片說明

這是因為我需要擴展 React 組件嗎? 我是否需要將其創建為變量並這樣做?

當您將匿名函數導出為組件時會發生這種情況。 如果您命名函數(組件)然后將其導出,它將正確顯示在 React Dev Tools 中。

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

要添加到 Michael Jaspers 的答案中,如果您想使用命名導入(而不是默認導出),您可以這樣做:

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

該組件將在 React DevTools 中顯示正確的名稱。

注意:如果您直接導出了表達式:

export const MyComponent = props => <div />

這將在 React DevTools 中顯示為AnonymousUnknown

我意識到原來的問題已經被正確回答了,但我只是想指出一個非常相似的問題,如果使用 React.memo() 或類似的函數,你可能會遇到。 考慮以下代碼:

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

該組件仍將在 devtools 和某些 React 錯誤消息(例如 prop-types 驗證)中顯示為Anonymous

確保在嘗試記住它之前定義了組件可以解決此問題,例如:

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

正如邁克爾所說,目前沒有辦法改變它在 devtools 檢查器中顯示為<Unknown>而不在導出之前命名函數。 但是如果這個 github 問題得到解決,將來可能會有。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM