일 년 전 · 익명 님의 새로운 댓글
타입스크립트 'value' is possibly 'null' 에러 옵셔널체이닝으로 해결안되는 이슈
import DateRangePicker from "@wojtekmaj/react-daterange-picker"; import { useDispatch } from "react-redux"; import { dateFetch } from "components/feature/FetchSlice"; import styled from "styled-components"; type ValuePiece = Date | null; type Value = ValuePiece | [ValuePiece, ValuePiece]; export default function CustomCalendar() { const dispatch = useDispatch(); const [value, onChange] = useState<Value>([new Date(), new Date()]); return ( <CalendarBox> <Calendar>조회 기간</Calendar> <StlyedDateRangePicker onChange={onChange} value={value} onCalendarClose={() => { dispatch( dateFetch({ startDate: value[0]?.toISOString(), endDate: value[1]?.toISOString(), }) ); console.log(value); }} /> </CalendarBox> ); } <StlyedDateRangePicker>는 styled component로 만든 DateRangePicker 라이브러리 컴포넌트입니다. DateRangePicker 에서 날짜 2개를 선택하면 value라는 배열에 Date 객체 2개가 들어갑니다. 그리고 onCalendarClose 함수가 동작하면서 redux로 만들어놓은 startDate, endDate 객체에 각각 date를 toISOString() 처리한 값이 할당되는 로직입니다. 날짜를 선택하기 전에는 value={value}의 value 배열요소인 Date객체 값이 null 값이니까 type ValuePiece = Date | null; 타입지정을 해줬습니다. startDate: value[0]?.toISOString(), endDate: value[1]?.toISOString(), 근데 위 코드의 value[0], value[1] 에러가 나더라구요. 'value' is possibly 'null'.ts(18047) Element implicitly has an 'any' type because expression of type '0' can't be used to index type 'Date | [ValuePiece, ValuePiece]'. Property '0' does not exist on type 'Date | [ValuePiece, ValuePiece]'. null 값일 수도 있다길래 옵셔널체이닝을 줬는데 여전히 에러가 발생합니다.. 해결방법을 도무지 모르겠네요.. 도와주시면 진심으로 감사하겠습니다ㅠㅠㅠ
개발자
#react
#typescript
#optional-chaining
답변 3
댓글 3
조회 276
일 년 전 · 프레드윰 님의 답변 업데이트
안드로이드 스튜디오에서 메일전송기능 구현하는법
안녕하세요 이번에 3학년 올라가는 컴공 학부생입니다. 방학동안 안드로이드 프론트엔드 공부를 하면서 동기들과 프로젝트로 앱을 하나 만들고있습니다. 코틀린을 사용해서 문의하기 기능을 만드는 중인데 인텐트를 사용하지 않고 문의 제목은 메일 제목으로, 문의 내용은 메일 내용으로 전송하는 방법을 찾고있습니다. 구글 검색을 해보니 smtp가 뭔지는 잘 모르겠지만 그걸로 구현이 가능한 것 같은데 글들이 최소 2년전 자료들이어서 현재 쓰고있는 hedgehog 버전과 통용되지 않는것 같습니다. 그래도 과거글을 바탕으로 구현해보고 있는데 2가지 문제가 발생했습니다. 1. Zendesk Auth 사이트에서 구글메일 보안비밀번호를 확인할수있다고 하는데 확인이 되지 않습니다. 2. 구글에서 지원하는 smtp 정보를 받아와서 MimeMessage 객체에 전달하는 과정에서 getDefaultInstance의 authenticator 부분에 javax.mail의 Authenticator를 상속받은 this를 넣었는데 FATAL EXCEPTION: DefaultDispatcher-worker-1 javax.mail.AuthenticationFailedException 오류가 발생했습니다. 스택오버플로우를 찾아보니 새로운 애뮬레이터를 만들라는 말이 있어서 해봤는데 실패했습니다. 구글신께 도움을 구해보려다 실패해서 여기에 올립니다!
개발자
#android
#androidstudio
#kotlin
답변 1
댓글 0
조회 176
2년 전 · 김태현 님의 새로운 댓글
sql문 부적합합니다..
spring boot 4 에서 웹개발프로젝트를 진행중입니다.. jsp페이지에서 받아온 searchText값을 쿼리문으로 비교 후 foodinfolist를 반환해주는데 sql developer에서는 SELECT * FROM foodinfolist WHERE food_name LIKE '%' || '치킨' || '%'; 해당 코드가 정상동작 돼서 잘 검색하지만 mapper.xml에서 <mapper namespace="com.springproj.dietwebservice.repository.IFoodInfoDAO"> <select id="findfoodinfo" parameterType="java.lang.String" resultType="com.springproj.dietwebservice.domain.FoodInfoVO">> <![CDATA[ SELECT * FROM foodinfolist WHERE food_name LIKE '%' || #{searchText} || '%' ]]> </select> </mapper> 해당 코드를 실행하면 sql문이 부적합합니다 라고 에러가 발생합니다.. 뭐가 문제인지 모르겠습니다.. searchText: 치킨 으로 데이터도 잘 담겨오는데.. [2m2024-01-31T16:24:22.500+09:00[0;39m [31mERROR[0;39m [35m8208[0;39m [2m---[0;39m [2m[nio-8090-exec-9][0;39m [2m[0;39m[36mo.a.c.c.C.[.[.[/].[dispatcherServlet] [0;39m [2m:[0;39m Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00900: SQL 문이 부적합합니다 선배님들 조언부탁드립니다..
개발자
#sql
#spring-boot
답변 4
댓글 2
추천해요 1
조회 593
2년 전 · 커리어리 AI 봇 님의 새로운 답변
react-query & redux-toolkit을 이용한 user 상태관리 질문
react-query를 이용해서 user정보를 받아와 return data를 이용해 그대로 user 정보를 사용했는데 유저 정보를 수정하려다 보니 setQueryData메서드를 이용해서 onChange로 변화값 받아서 수정 후 업데이트를 진행해야 하는지 아니면 useQuery로 받은 user 정보를 redux-toolkit을 이용해 등록 후 dispatch로 상태관리 하다 수정 api를 실행해야하는지 궁금합니다.
개발자
#react
#react-query
#redux-toolkit
답변 2
댓글 0
보충이 필요해요 1
조회 683
2년 전 · 커리어리 AI 봇 님의 새로운 답변
NextJs 사용할때 getStaticProps 에서나 아니면 다른곳에서 dispatch 사용하는방법이 있을까요?
아직 시도는 안해봤는데 dispatch 도 결국 use이니깐 컴포넌트함수가 아니면 실행이 안되는걸로 알고있는데 리덕스 액션 요청하는 방법이 따로 있을까요?
개발자
#redux
#dispatch
#getstaticprops
#next.js
답변 2
댓글 0
조회 190
2년 전 · 커리어리 AI 봇 님의 새로운 답변
react에서 상태관리로 redux 사용 관련 질문
React에서 상태 관리를 위해 Redux를 사용하고 있습니다. 아이템 리스트 페이지로 이동할 때, 아이템 리스트를 가져오는 로직을 action 생성 함수에 구현하고, 페이지 이동 시 해당 함수를 dispatch하는 방식이 적절한가요?
개발자
#react
#redux
답변 2
댓글 0
조회 164
2년 전 · 익명 님의 새로운 답변
react-native) 안드로이드에서만 api서버가 401에러 발생
서버 api 호출하는 코드인데요. ios에서는 토큰 가져와서, 호출 잘 되는데, 안드로이드에서는 토큰은 잘 가져오는데.... 호출을 하면 권한이 없다고 나옵니다. (401에러 unauthorized) 물론 헤더 넘기지 않는 로그인 같은것은 성공적으로 수행됩니다. 유저 정보를 가져오는 이 부분만 android에서 에러가 발생하네요 ㅜㅜ 혹시 이런 이슈 해결하신분 있을까요? api서버는 django입니다. useEffect(() => { const getTokenAndRefresh = async () => { try { const token = await EncryptedStorage.getItem('accessToken'); if (!token) { return; } console.log('스토리지에 token있음:', token); const API_URL = Platform.OS === 'ios' ? IOS_API_URL : ANDROID_API_URL; const response = await axios.get(`${API_URL}/me`, { headers: { Authorization: `Token ${token}`, }, }); console.log(response.data); dispatch( userSlice.actions.setUser({ userInfo: response.data, accessToken: token, }), ); } catch (error) { console.error(error); console.error('me호출 에러'); } } }; getTokenAndRefresh(); }, [dispatch, isAccessToken]);
개발자
#reactnative
#django
#axios
답변 3
댓글 0
조회 541