REACT (21) 썸네일형 리스트형 gapi oauth2 - google Calendar GAPI란?GAPI는 구글이 브라우저 쪽 자바스크립트를 위해 제공하는 클라이언트 라이브러리다. 구글 로그인, 구글 드라이브, 구글 캘린더 등 다양한 구글 API와 쉽게 연동할 수 있도록 도와준다. 나는 React 프로젝트에서 GAPI를 이용해 Google Calendar API와 FullCalendar를 연동하여 캘린더 이벤트를 관리하는 기능을 구현했다.1. index.html에 GAPI 로드하기위 스크립트 태그를 넣어 GAPI 라이브러리를 불러온다.npm 패키지로 설치하는 방법도 있으나, 간단하게 html에서 바로 불러오는 방식을 주로 사용한다.2. GAPI 사용 준비하기var gapi = window.gapi;gapi.load('auth2', () => { var gauth = gapi.auth.. React / 환경변수 설정 DefinePlugin React에서 개발환경에 따라 API를 다르게 호출할 수 있는 경우가 있다 예로들면 local : axios.get("http://gateway:9010/test/api") dev : axios.get("http://devway:9010/test/api") prd : axios.get("http://prdway:9010/test/api") Webpack by default does not provide any process to load ‘.env’ files. but there many plugins and libraries that can do the same task. 출처 : https://medium.com/@bhautikbharadava/environment-variables-webpack-c.. [리액트,React] Props 부모-자식 전달 구조는 Template - 자식1 - 자식2 설계 되어있다. 1. 먼저 최하위 자식인 MyModal에서 onDeleteLeave 함수를 실행할 경우 props로 넘어온 handleSubmit에다가 startDate값과 cnt를 넘겨준다. 2. 그럴경우 부모의 바로 밑인 하위자식이 CalendarForm은 handleSubmit으로 받아온 값을 this.props.handleApplyTemps로 값을 넘겨준다. 3. 그러면 상위부모인 Template은 CalendarForm의 handleApplyTemps 값을 가진 handleSubmit의 값을 받아온다. function MyModal(props) { const onDeleteLeave = param => { props.handleSubmit(startD.. React // Object.map is not a function React에서 .map 을 써서 데이터를 뿌려줄 경우 생각보다 나한테 .map is not a function 에러가 번번히 떴다. 원인은 .map()은 배열에만 가능하단 것이다. 그리하여 주로 map에서 원치 않는 포맷들로 이뤄진 데이터를 뿌려주려 할때 생기는 에러다. 예로들면 중괄호, 대괄호도 에러의 원인이 될 수도 있다. 아니면 state나 props의 형태가 Object가 아닌걸로 되어있을 수도 있다. 일단, 이 에러를 숨기는 방법 -> 이 방법은 에러를 완전히 해결한다고 볼 수 없다. 1. JSX안에는 중괄효를 이용해서 표현식을 이용할 수 있다. {tmId.map((tm,index) => { return( {index+1} {tm.hmName} {tm.leaveCategory} {tm.stDat.. React/FullCalendar next,prev 이벤트 핸들링 내가 못찾은건진 모르겠지만 FullCalendar의 next,prev 버튼을 누를 경우 react fullCalendar에서 특정 함수를 실행시켜 줄 수 있는 메소드(?)를 제공해주지 않아 정말 많은 시행착오들이 있었다. --FULLCALENDAR 일단 여기에서 next와 prev를 누를경우 특정 함수를 실행시키고 싶었다 1. 버튼 생성 -> FullCalendar의 prev버튼 trigger -> 함수 실행 ==> 비효율적 2. FullCalendar의 customButton 생성 FullCalendar에서 제공해주는 event 가 유일하게 달이 바뀔때마다 실행되는 요소이기에 위의 코드처럼 event={this.monthChange} 함수를 실행해주었다. monthChange = () => { var .. 이전 1 2 3 다음