Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바 스캐너
- 항해99
- 자바 while문
- 타입스크립트
- TypeScript
- 자바 강제 캐스팅
- 변수
- 자바 switch문
- MySQL
- react with typescript
- 자바 구구단 출력
- 조코딩
- 항해99 2기
- Vue3
- 자바 반복문
- 자바 public
- java
- 자바 향상된 for문
- 프로그래머스
- 자바 조건문
- 이클립스 DB연동
- Til
- react ag grid
- 정보처리기사실기
- 자바 자동캐스팅
- 자바 for문
- 자바 공배수
- 자바 삼항연산자
- 자바
- 자바 if문
Archives
- Today
- Total
뇌 채우기 공간
[TIL] 20211125 props default/ typescript error 처리/ vue option api model 본문
TIL
[TIL] 20211125 props default/ typescript error 처리/ vue option api model
자바칩 프라푸치노 2021. 11. 25. 17:491. props undefined error
부모에서 api를 호출해서 ref오브젝트에 넣어서 props로 요소들을 넘기고 있는데..
undefine으로 넘어간다.
아마도 값이 들어가기 전에 props로 넘기고 있는 것 같다.
근데 props를 찍어보니 잘 나온다.. 대체 왜이러냐!!
props에서 required true였던 것에 default 를 설정해주니까 사라졌음
2. typescript에서 에러 처리
const getOrderDetail = async () => {
try {
//코드
} catch (e) {
window.alert(e.data.meta.resultMsg);
}
};
타입스크립트에서 e의 타입을 안정해주니까 e안에 data가 있는지 그 안에 meta가 있는지 모르니까 에러가 난다.
alert((e as AxiosResponse<AResponse>).data.meta.resultMsg);
AResponse => 이 프로젝트에서 정의한 에러
이 비동기 코드는 axios 요청 코드이므로 AxiosResponse의 타입을 정의하면 된다!
3. option api 에서 model
model: {
props: 'value',
event: 'change',
},
vue2코드에서 model이라는 코드를 발견했다.
props의 value를 v-model로 바인딩 하겠다는 뜻이겠지 ? 하고
composition api 로 바꿔보았다.
setup(props, { emit }) {
const isOpen = computed({
get() {
return props.value;
},
set(value) {
emit('change', value);
},
});
return {
isOpen,
};
},
computed 에서 getter와 setter로 바인딩을 해주었다.
728x90
'TIL' 카테고리의 다른 글
[TIL] 20211130 useMutation/ graphQL (0) | 2021.11.30 |
---|---|
[TIL] 20211126 vue2 route/ rebase/ vue error (0) | 2021.11.27 |
[TIL] 20211124 타입스크립트 타입 지정/ No overload matches this call 에러 (0) | 2021.11.24 |
[TIL] 20211123 타입스크립트 타입 정의/ composition function (0) | 2021.11.23 |
[TIL] 20211122 vue2와 vue3의 차이/ img require/ computed getter setter/ props type 정의 (0) | 2021.11.23 |