• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 리액트 프로젝트 배포 관련 질문

리액트 프로젝트 배포 관련 질문

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #27836

    서정우
    참가자

    5시간 정도 소요했는데 아직도 배포가 안되어서 질문드립니다 ㅠㅠ

    배포 방법은 https://velog.io/@byjihye/react-github-pages

    해당 링크를 참고해 건드리지 않은 설치 직후의 리액트 폴더로 테스트를 해봐서 잘 되어 

    링크의 방법과 동일한 방법으로 직접 만든 프로젝트를 배포해보았는데, 뭐가 문제인지 하얀 화면만 뜨고

    속성으로 보면 로그에 상단의 이미지와 같은 에러가 뜹니다.

    프로젝트의 소스코드는 

    <strong>App.js</strong>

    import "./App.css"; import React, { useState } from "react"; function saveInLocalStorage(todos) { localStorage.setItem("todos", JSON.stringify(todos)); } function App() { let savedArray = JSON.parse(localStorage.getItem("todos")); let [todos, setTodos] = useState([]); function Todoform() { return ( <div className="formcase"> <form onSubmit={function (e) { e.preventDefault(); const arraycopy = [...savedArray]; arraycopy.push({ do: e.target.todo.value, id: Date.now(), }); setTodos(arraycopy); saveInLocalStorage(arraycopy); }} > <h2>할 일 갯수 : {savedArray.length}</h2> <input className="inputtext" type="text" name="todo" placeholder="할 일을 적으세요" ></input> <input className="button" id="todoInput" type="submit" value={"추가하기"} ></input> </form> {savedArray ? <Ul /> : <></>} </div> ); } function Ul() { function Li(props) { let [form, setForm] = useState(false); function Editform(props) { return ( <form style={{display:"inline"}} onSubmit={(e) => { e.preventDefault(); let arr1 = [...savedArray]; let arr2 = [ { do: e.target.edit.value, id: parseInt(props.id), }]; let arraycopy = arr1.map(obj => arr2.find(o => o.id === obj.id) || obj); setTodos(arraycopy); saveInLocalStorage(arraycopy); }} > <input className="inputtext" name="edit" placeholder={props.do}></input> </form> ); } return ( <li key={props.index}> {props.index + 1}번째 {props.data.do} <button className="button" onClick={() => { const arraycopy = props.savedArray.filter( (d) => d.id !== props.data.id ); setTodos((todos = [...arraycopy])); saveInLocalStorage(arraycopy); }} > 삭제 </button> <button className="button" onClick={() => { setForm(form ? false : true); }} > 수정 </button> {form ? ( <Editform obj={props.data} do={props.data.do} id={props.data.id} /> ) : null} </li> ); } return ( <ul> {savedArray.map(function (data, index) { return ( <Li index={index} data={data} savedArray={savedArray} key={index} /> ); })} </ul> ); } return ( <div className="App bigcase"> <Todoform /> </div> ); } export default App; 

     

    <strong>App.css</strong>

    body{ background-color: whitesmoke; text-align: center; } .bigcase{ display: flex; justify-content: space-evenly; align-items: center; height: 500px; } .formcase{ box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08); height: auto; padding: 10px; border-radius: 10px; text-align: center; margin-bottom: 20px; } ul{ list-style: none; } .inputtext{ margin-left: 10px; width: 150px; height: 21px; border-radius: 10px; border-width: 0.5px; font-weight: 600; font-size: 12px; text-align: center; border: 1px solid whitesmoke; box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08); } .button{ margin-left: 10px; width: auto; height: 21px; border-radius: 10px; border-width: 0.5px; font-weight: 600; font-size: 12px; text-align: center; border: 1px solid whitesmoke; box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08); text-decoration: none; color: black; }

     

    이 외에 다른 파일들은 수정사항 없습니다. 

    index.js역시 손대지 않아 하단과 같이 기본인 상태입니다.

    import React from 'react';
    import ReactDOM from 'react-dom';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';

    ReactDOM.render(
      <React.StrictMode>
        <App />
      </React.StrictMode>,
      document.getElementById('root')
    );

    // If you want to start measuring performance in your app, pass a function
    // to log results (for example: reportWebVitals(console.log))
    // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
    reportWebVitals();

     

    #27839

    codingapple
    키 마스터

    .length쓴 부분 왼쪽에 있는게 null이라고 하는 에러같군요

    savedArray 이게 텅 비어있으면 뭐 다른거 해달라고 if문을 추가합시다 

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠