在開發網頁時,我們經常會遇到「Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined」的錯誤訊息,這是一個很常見的問題,也是一個很難解決的問題。
這個錯誤訊息的原因是,你在使用 React 的時候,沒有正確地定義元件,或者你定義的元件不正確。在 React 中,元件是一個物件,它可以是一個字串(用於內建元件),或者是一個類別/函數(用於複合元件)。
目錄
解決方法
要解決這個問題,你需要確保你定義的元件是正確的,並且確保你的元件是一個字串(用於內建元件)或者是一個類別/函數(用於複合元件)。
如果你正在使用內建元件,你可以使用 React.createElement() 方法來創建元件,例如:
React.createElement('div', {className: 'my-div'}, 'Hello World!');
如果你正在使用複合元件,你可以使用 ES6 的 class 語法來創建元件,例如:
class MyComponent extends React.Component {
render() {
return <div>Hello World!</div>;
}
}
另外,你也可以使用 React 的函數式組件來創建元件,例如:
const MyComponent = () => {
return <div>Hello World!</div>;
};
總之,如果你遇到「Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined」的錯誤訊息,你可以檢查你的元件是否正確定義,並且確保你的元件是一個字串(用於內建元件)或者是一個類別/函數(用於複合元件)。
推薦閱讀文章
React Error: Element Type is Invalid: Expected a String (for Built-in Components) or a Class/Function (for Composite Components) but Got: undefined
React Error: Element Type is Invalid: Expected a String (for Built-in Components) or a Class/Function (for Composite Components) but Got: undefined
React Error: Element Type is Invalid: Expected a String (for Built-in Components) or a Class/Function (for Composite Components) but Got: undefined
React Error: Element Type is Invalid: Expected a String (for Built-in Components) or a Class/Function (for Composite Components) but Got: undefined
React Error: Element Type is Invalid: Expected a String (for Built-in Components) or a Class/Function (for Composite Components) but Got: undefined</a