inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

웹 게임을 만들며 배우는 React

안녕하세요! 에러발생위치에 대해 궁금한게 있습니다.

334

박인혁

작성한 질문수 23

0

안녕하세요! 제로초님 강의 덕분에 리엑트 열심히 공부하고있습니다 ㅎㅎ

한가지 궁금한게 있어서 질문 올려요.

에러가 발생했는데요,

에러 발생위치 보면

TicTacToc.jsx:98:22 에 에러가 발생했다고 뜨는데

해당 TicTacToc.jsx에는 98번째 줄이 없습니다 ㅠㅠ

그래서 저 콘솔창의 at TicTacToc (VM2667 TicTacToc.jsx:98) 를 클릭했더니

여기서 에러가 발생했다고 나오네요...... 

이렇게 되면 첫번째 사진의 TicTacToc.jsx에서는 실제 어느 위치가 잘못되었는지 알 수 없는데........

이거 알 수 있는 방법 있을까요? ㅠㅠㅠㅠ

저 콘솔창의 에러메세지만 보면 도대체 어디에 있는 tableData가 정의가 안되어있다는건지 모르겠습니다..

감사합니다!!

react

답변 1

0

박인혁

const React = require('react')
const {useStateuseEffectuseReduceruseCallback} = React
const Table = require('./Table')

const initalState = {
    winner: '',
    turn: 'o',
    tableData: [['','',''],
                ['','',''],
                ['','','']]
}

module.exports = SET_WINNER = 'SET_WINNER'
module.exports = CLICK_CELL = 'CLICK_CELL'
module.exports = CHANGE_TURN = 'CHANGE_TURN'

const reducer = (stateaction=> {
    switch (action.type) {
        case SET_WINNER :
            return {
                ...state,
                winner: action.winner
            }
        case CLICK_CELL: {
            const tableData = [...state.tableData]
            tableData[action.row = [...tableData[action.row]]]
            tableData[action.row][action.cell] = state.turn
            return {
                ...state
                tableData
            }
        }
        case CHANGE_TURN: {
            return {
                ...state,
                turn: state.turn === 'O' ? 'X' : 'O'
            }
        }
    }
}

const TicTacToc = () => {
    const [statedispatch] = useReducer(reducerinitalState)

    // const [winner, setWinner] = useState('')
    // const [turn, setTurn] = useState('')
    // const [tabledata, settableData] = useState([['','',''],['','',''],['','','']])
    const onClickTable = useCallback(() => {
        dispatch({ type: SET_WINNERwinner: 'O'})
    }, [])

    return (
        <>
            <Table onClick={onClickTable} tableData={state.tableData} dispatch={dispatch}/>
            {state.winner && <div>{state.winner} 님의 승리</div>}
        </>
    )
}

module.exports = TicTacToc

곰곰히 보니깐 하단의 return 부분을 말하는거같은데..

table, tr, td컴포넌트로 tableData를 보내는데는 문제가 전혀 없었습니다.

왜 정의가 안되어있다고 나오는지 도저히 모르겠습니다..

npm run dev 실행 시 포트가 안뜨는 문제

0

202

2

timeouts.current를 useEffect 의 input값으로 넣었을때

0

85

2

렌더링 테스트 코드 (Hooks)

0

80

1

Cannot find package 'react-refesh' 이런 에러 뜨시는 분들 보세요.

0

149

1

해당 에러 뜨는 분들 보세요. "Uncaught TypeError: ReactDom.createRoot is not a function"

1

191

1

강사님 레포지토리에서 코드 복사 시 master 브랜치 말고 react18 브랜치꺼 복붙하세요ㅠㅠ

0

95

1

useMemo와 useCallback 사용 시기

0

205

2

onRightClickTd가 작동을 하지 않습니다.

0

226

1

action.type 불러오는 방식

0

222

2

onClickRedo 질문

0

172

1

const Try = require(./Try) 빨간줄

0

248

1

npx webpack 실행시

0

313

1

지뢰찾기 강좌에서 빈칸들 한번에 열기 파트에서 여쭤보고싶은부분이 있어서 글 올립니다.

0

234

1

강좌에서 다루지 않은 기능들은 어떻게 학습하면 좋을까요?

0

311

1

react devtool이 enable 않됩니다.

0

530

2

React 랜더링이 되지 않습니다.

0

409

2

비동기로 동작하는 setState에 대해서

0

331

1

npm run dev 할 때 에러발생

0

478

2

memo, PureComponenet, shouldComponentUpdate 관련 질문

0

206

1

devMiddleware의 필요성

0

352

1

리액트에서 화살표 함수를 사용해야하는 이유

0

934

2

path.join관련질문

0

282

2

2-9. 웹팩 데브 서버와 핫 리로딩 설치과정 시 에러

0

374

1

next.js 에서 이와 비슷한 예제를 돌리고있는데 react랑 달라서 질문 드립니

1

490

4