>

기사 ID를 반환하고 해당 ID의 세부 정보 페이지로 이동하려고합니다. 나는 아래와 같은 것을했다. 그러나 결국 작동하지 않습니다 ... 콘솔에서 팝업 및 다음을 가리키는 오류가 있습니다 :

와이즈 비즈

여기서 조금 길을 잃었 기 때문에 도움이 필요합니다. 내가 뭘 잘못 했니?

Vuex

api/v1/article[object%20Object]:1 Failed to load resource: the server responded with a status of 404 (Not Found)

경로

export const articles = {
    state: {
        article: {},
    },
    mutations: {
        setArticle(state, article){
            state.article = article;
        },
    },
    getters: {
        loadArticle(state){
            return state.article;
        },
    },
    actions: {
        getArticle(id){
            axios.get("api/v1/article" + id)
            .then(response => {
                this.commit('setArticles', response.data);
            })
            .catch(error => {
                console.log(error);
            })
        },
    }
}

기사 구성 요소

{
    path: "detail/:id",
    name: "detail",
    component: Vue.component("Detail", require("./pages/Detail.vue").default),
    meta: {
        requiresAuth: true
    }
},

기사 ID로 연결

export default {
    components: {
        maps,
    },
    data(){
        return {
        };
    },
    created(){
        this.$store.dispatch( 'getArticle', {
            id: this.$route.params.id
        });
    },
    computed: {
        article(){
            return this.$store.getters.loadArticle;
        }
    }
}

<router-link :to="{ name: 'detail', params: { id: item.id } }">詳細を見る</router-link>

  • 답변 # 1

    업데이트

    첫 번째 parameter  저장 조치는 상점 특성 자체입니다. 이것이 당신이 store 를 얻는 이유입니다  목적. id 를 받아야합니다  또는 두 번째 매개 변수 인 페이로드입니다.

    actions: {
            getArticle({ commit }, id){
                axios.get("api/v1/article" + id)
                .then(response => {
                    commit('setArticles', response.data);
                })
                .catch(error => {
                    console.log(error);
                })
            },
        }
    
    

    여기에 표시됩니다

    created(){
            this.$store.dispatch( 'getArticle', {
                id: this.$route.params.id
            });
        },
    
    

    당신은 object 를 통과  매개 변수로

    {
       id: this.$route.params.id
    }
    
    

    대신해야합니다-

    created(){
       this.$store.dispatch( 'getArticle', this.$route.params.id);
    },
    
    

  • 이전 ace editor - Webpack을 사용하여 Jodit이 번들 버전의 Ace를 사용하도록하는 방법
  • 다음 angular - ag-grid 열 너비를 백분율로 지정하는 방법이 있습니까?