inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue.js 제대로 배워볼래?(Vue.js 프로젝트 투입 일주일 전)

API 등록 및 서버 데이터 바인딩

서버에서 데이타는 가져오는데 바인딩이 안 됩니다.

191

jnj45

작성한 질문수 8

0

서버에서 데이타를 조회가 되는데,

바인딩된 테이블의 리스트가 변경이 안 되네요

왜 그럴까요?

<template>
    <div>
        <div>
            <select v-model="city">
                <option v-for="(city, i) in cities" :value="city.code" :key="i">{{city.name}}</option>                
            </select>
            <input type="text" v-model="userName" @keyup.enter="searchUserList">
            <button @click="searchUserList">조회</button>
        </div>
        <div>
            <table>
                <thead>
                    <th>이름</th>
                    <th>나이</th>
                    <th>직업</th>
                </thead>
                <tbody>
                    <tr v-for="(user, i) in userList" :key="i">
                        <td>{{user.name}}</td>
                        <td>{{user.age}}</td>
                        <td>{{user.job}}</td>
                    </tr>
                </tbody>
            </table>
        </div>

    </div>
</template>
<script>
import axios from 'axios';

export default {
    name: '',
    components: {},
    data() {
        return {
            cities: [{code:'02',name:'서울'},{code:'051',name:'부산'},{code:'064',name:'제주'}],
            city: '02',
            userName: '',
            userList: []
        }
    },
    setup() {},
    created() {},
    mounted() {},
    unmounted() {},
    methods: {
        async searchUserList() {
            const params = {
                selectedCity: this.selectedCity,
                userName: this.userName
            }
            console.log(params);

            this.userList = await this.api('https://ca2cf65a-ebd5-4efc-a0c4-55baeaf6d52c.mock.pstmn.io/userList','get', params);
            // this.userList = [
            //     {name:'유재석2', age: 50, job:'연예인'},
            //     {name:'하하2', age: 45, job:'연예인'},
            //     {name:'김종국2', age: 48, job:'연예인,가수'}
            // ];
            console.log(this.userList);
        },
        async api(url, method, data) {
            return (
                await axios({
                    method: method,
                    url: url,
                    data: data
                }).catch(e => {
                    console.log(e);
                })
            ).data;
        }
    }
}
</script>
<style scoped>
</style>

vuejs vuex

답변 2

0

개발자의 품격

현재로써는 코드상에는 전혀 문제가 없기 때문에 정상적으로 수행되어야 하는게 맞는데 참 이상하네요.

0

개발자의 품격

콘솔에 어떻게 출력이 되고 있나요?

코드 상으로는 전혀 문제가 없어 보입니다.

혹시 서버에서 받아온 데이터의 포맷이 문제가 있는 콘솔 내용을 봐야 할것 같습니다.

0

jnj45

const searchList = await this.$callApi('https://ca2cf65a-ebd5-4efc-a0c4-55baeaf6d52c.mock.pstmn.io/userList','get', params);
console.log('searchList===========================');
console.log(searchList);

this.userList = searchList;
 
console.log('userList=============================');
console.log(this.userList);

로그결과

로그는 위와 같습니다. 로그로 봐서는 데이타에 문제가 없는 것 같은데요.

로그에 찍힌 데이타를 직접 하드코딩해서 this.userList에 set하면 테이블 목록에 반영이 됩니다.

0

jnj45

api 호출하는 부분을 주석처리하고 직접 코드로 데이타를 set할 때는 콘솔로그에 Pxoxy....라고 찍히네요.

google login 를 따라하다가 오류 발생

0

933

1

Expected indentation of 2 spaces but found 4 오류

0

873

1

카카오 로그인 에러가 뜨세요

0

433

1

Multi-word질문드립니다.

0

232

2

설치 이후 npm run serve 화면 안나옴

0

650

1

vue cli 문제

0

359

2

요청드립니다.

0

158

0

eslint 에러발생

0

1377

1

main.js 질문드립니다.

0

226

1

vuex-persistedstate 는 동작 자체를 안하네요?

0

367

1

15강.조회화면 저장실습 - params안됨

0

285

1

array 넘겨주기

0

162

0

유튜브 4시간 강의와는 어떤 차이가 있을까요?

0

283

1

prefetch기능

0

736

1

테이블 list 랜더링 되지 않습니다.

0

251

1

펑션을 한 depth 더 들어가면 $호출이 안되는 이유가 뭘까요?

0

284

2

name 값이 없는 경우 오류

0

207

1

vue config 파일 문의

0

343

1

실무 레벨에서 공통코드(기준정보)는 어떻게 구현 할까요?

0

323

1

강의자료가 따로 있나요?

0

360

1

computed 대신 직접 this.$store.state.user 사용은 안되나요?

0

168

0

lazy-load의 성능에 대해서 질문이 있습니다.

0

201

0

Prefetch 관련 질문 드립니다.

0

142

1

저는 왜 하나의 단어가 지정이 안될까요?

0

310

1