Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.
해당 오류 코드는 대략적으로 다음과 같다.
1
2
3
4
5
6
7
8
|
// client.jsx
const React = require('react'); const ReactDOM = require('react-dom');
const NumberBaseball = require('./NumberBaseball');
const root = document.querySelector('#root');
const rootContainer = ReactDOM.createRoot(root);
rootContainer.render(<NumberBaseball />)
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
// NumberBaseball.jsx
import React, {Component} from 'react'; function getNumbers(){ // 숫자 네 개를 겹치지 않고 랜덤하게 뽑는 함수
}
class NumberBaseball extends Component{
state ={
result: '',
value: '',
answer: getNumbers(),
tries: [],
};
onSubmitForm = () => { // 내가 만드는 함수는 화살표 함수로
};
onChangeInput = () => {
};
render(){
return (
<>
<h1>{this.state.result}</h1>
<form onSubmit={this.onSubmitForm}>
<input maxLength={4} value={this.state.value} onChange={this.onChangeInput}/>
</form>
<div>시도: {this.state.tries.length}</div>
<ul>
{['like','like','like','like'].map(()=>{
return (
<li>like</li>
)
})}
</ul>
</>
// value와 onChange는 세트, defaultValue={this.state.value}로 대체 가능
)
}
}
export default NumberBaseball; // import NumberBaseball
|
cs |
해당 오류는 NumberBaseball.jsx에서는 ES6 모듈 문법을 이용해서 export default NumberBaseball; 로 내보내고 있지만,
client.jsx에서는 CommonJS 문법을 사용하여 require('./NumberBaseball); 로 가져오고 있다.
이러한 혼용이 문제가 생겼다.
해결 방법은 다음과 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
// NumberBaseball.jsx
===================(변경전)====================
import React, {Component} from 'react';
===================(변경후)====================
const React = require('react')
const {Component} = require('react')
===================(변경전)====================
export default NumberBaseball;
===================(변경후)====================
module.exports = NumberBaseball;
|
cs |
+ Chat GPT에 나온 해설들
'WEB > React' 카테고리의 다른 글
[React] 당근마켓 클론코딩 - 미디어 쿼리 적용 맛보기 (0) | 2023.08.23 |
---|---|
[React] 당근마켓 클론코딩 - 간단한 부분들만 (0) | 2023.08.22 |
[React] 날씨 앱 구현해보기 (유사 클론코딩) (0) | 2023.08.13 |
[React] 데이터 필터링 간단 구현 (전체, true, false) (0) | 2023.08.11 |