inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex

localStorage 관련 문의드립니다.

256

토마토

작성한 질문수 4

1

안녕하세요!

TodoList.vue 에서 localStorage JSON.parse으로 변경 시

[Vue warn]: Error in created hook: "SyntaxError: Unexpected token 바 in JSON at position 0"

found in

---> <TodoList> at src/components/TodoList.vue

       <App> at src/App.vue

         <Root>

라는 오류가 뜨고 리스트가 나오질 않습니다 

코드를 아무리 봐도 문제가 뭔지 모르겠네요...어디가 잘못된걸까요 ㅜㅜ

TodoList.vue 코드 첨부해드립니다 ..

<template>
  <section>
    <ul>
      <li v-for="(todoItem, index) in todoItems" class="shadow" v-bind:key="todoItem">
        <i class="checkBtn fas fa-check"  v-on:click="toggleComplete"></i>
         {{todoItem}}
        <span class="removeBtn" v-on:click="removeTodo(todoItem, index)">
          <i class="removeBtn fas fa-trash-alt"></i>
        </span>
      </li>
    </ul>
  </section>
</template>

<script>
export default {
  data: function() {
    return {
      todoItems: []
    }
  },
  methods: {
    removeTodo: function(todoItem, index) { 
      this.todoItems.splice(index, 1); // 화면에서 지우기 인덱스 하나를 지우자(하나를 콕 집어서 splice)
      localStorage.removeItem(todoItem);  //데이터베이스에서 지우기
    },
    toggleComplete: function(){

    }
  },
  created: function() {
    if (localStorage.length > 0) {
      for (var i = 0; i < localStorage.length; i++) {
        if (localStorage.key(i) !== 'loglevel:webpack-dev-server') { 
          this.todoItems.push(JSON.parse(localStorage.getItem(localStorage.key(i)))); //문자열로 변환
        }
      }
    }
  }
}
</script>

<style scoped>
ul {
  list-style-type: none;
  padding-left: 0px;
  margin-top: 0;
  text-align: left;
}
li {
  display: flex;
  min-height: 50px;
  height: 50px;
  line-height: 50px;
  margin: 0.5rem 0;
  padding: 0 0.9rem;
  background: white;
  border-radius: 5px;
}
.checkBtn {
  line-height: 45px;
  color: #62acde;
  margin-right: 5px;
}
.checkBtnCompleted {
  color: #b3adad;
}
.textCompleted {
  text-decoration: line-through;
  color: #b3adad;
}
.removeBtn {
  margin-left: auto;
  color: #de4343;
}
</style>

vuex vuejs javascript es6

답변 1

0

캡틴판교

안녕하세요 토마토님 제가 답변이 조금 늦었네요! :)

위에 created 쪽에서 로컬 스토리지의 데이터를 불러오는 구간에 JSON.parse를 사용하셔서 그런 것 같습니다. 저장하실 때 객체 형태로 저장하셨나요? :)

깃권한요청드립니다

0

81

1

Chrome 개발자 모드 확장이 안됨

0

483

1

깃 권한 요청드립니다

0

177

1

vue.js 중급 리포지토리 권한 관련

0

189

1

vuex + axios 질문 있습니다!

1

272

2

깃 권한 요청드립니다!

0

213

1

강의 깃주소 문의

0

188

1

router-view에 props를 어떻게 넘길 수 있나요?

1

357

2

Vue가 인식되지 않는 현상

0

265

1

기초강좌는 어디있나요?

1

253

2

App.vue가 필요한 이유

0

257

1

getter가 정의되어 있지 않아 오류가 발생합니다.

1

318

1

뷰 라이프사이클

1

237

1

TSLint 말고 TSLint Vue 설치해도 되나요?

1

449

3

로컬 스토리지는 어디에 있나요?

1

350

1

vuex 실행시 새로고침해야지만 리스트에 나타나는 현상

1

475

2

export default 관련한 질문

0

427

2

깃허브 vue-todo 접근불가에 따른 확인요청

1

416

2

깃허브에 문제있는것 같습니다.

1

341

2

인프런 강의 재생 화면 구성 변경 문의드립니다

1

379

2

addTodo Helper 함수 적용

1

286

1

vuex 헬퍼 전역 설정

1

331

2

github 권한요청드립니다.

1

307

2

이벤트 위치에 대한 궁금증 입니다.

1

282

2