how to get data with mapActions












0















I can't seem to get the data I need using mapActions from my store. I am doing an Axios GET (I turn that data to an array), and pass that data to my home.vue, and render a list of notes.
Now, it works fine if I use mapGetters, but to my understanding, I can access data directly from mapActions, I've seen people do it, but so far I can't. Or can I?



Home.vue:



  export default {
methods:{
// Not Working
...mapActions(
['getNotes']
),
created(){
// Not working
this.getNotes()
console.log(this.getNotes())//returns pending Promise
}
}


my store.js



export default new Vuex.Store({
state: {
...other stuff in state...
// this is getting the notes from firebase
notes: {}
},
getters: {
...other getters...
notes: state => state.notes
},
mutations: {
...other mutations...
SET_NOTES (state, notes) {
state.notes = notes
}
},
actions: {
getNotes ({ commit }) {
axios.get('/data.json')
.then(res => {
const incoming = res.data
const notes = // <-- this is commited ok without explicit return
// converting object to array
// extracting firebase ids for manipulating existing notes
for (let key in incoming) {
const note = incoming[key]
note.id = key
notes.push(note)
}
console.log(notes)
commit('SET_NOTES', notes)
// return notes <-- tried that, no effect!
})
.catch((error) => {
console.log('Error: ', error)
})
},
...commiting 2 other things needed for my app
}
...other actions...
})









share|improve this question

























  • It should be this.notes(). And don't forget that your action is async one, so state will be changed after your console.log call.

    – Styx
    Dec 28 '18 at 17:06


















0















I can't seem to get the data I need using mapActions from my store. I am doing an Axios GET (I turn that data to an array), and pass that data to my home.vue, and render a list of notes.
Now, it works fine if I use mapGetters, but to my understanding, I can access data directly from mapActions, I've seen people do it, but so far I can't. Or can I?



Home.vue:



  export default {
methods:{
// Not Working
...mapActions(
['getNotes']
),
created(){
// Not working
this.getNotes()
console.log(this.getNotes())//returns pending Promise
}
}


my store.js



export default new Vuex.Store({
state: {
...other stuff in state...
// this is getting the notes from firebase
notes: {}
},
getters: {
...other getters...
notes: state => state.notes
},
mutations: {
...other mutations...
SET_NOTES (state, notes) {
state.notes = notes
}
},
actions: {
getNotes ({ commit }) {
axios.get('/data.json')
.then(res => {
const incoming = res.data
const notes = // <-- this is commited ok without explicit return
// converting object to array
// extracting firebase ids for manipulating existing notes
for (let key in incoming) {
const note = incoming[key]
note.id = key
notes.push(note)
}
console.log(notes)
commit('SET_NOTES', notes)
// return notes <-- tried that, no effect!
})
.catch((error) => {
console.log('Error: ', error)
})
},
...commiting 2 other things needed for my app
}
...other actions...
})









share|improve this question

























  • It should be this.notes(). And don't forget that your action is async one, so state will be changed after your console.log call.

    – Styx
    Dec 28 '18 at 17:06
















0












0








0








I can't seem to get the data I need using mapActions from my store. I am doing an Axios GET (I turn that data to an array), and pass that data to my home.vue, and render a list of notes.
Now, it works fine if I use mapGetters, but to my understanding, I can access data directly from mapActions, I've seen people do it, but so far I can't. Or can I?



Home.vue:



  export default {
methods:{
// Not Working
...mapActions(
['getNotes']
),
created(){
// Not working
this.getNotes()
console.log(this.getNotes())//returns pending Promise
}
}


my store.js



export default new Vuex.Store({
state: {
...other stuff in state...
// this is getting the notes from firebase
notes: {}
},
getters: {
...other getters...
notes: state => state.notes
},
mutations: {
...other mutations...
SET_NOTES (state, notes) {
state.notes = notes
}
},
actions: {
getNotes ({ commit }) {
axios.get('/data.json')
.then(res => {
const incoming = res.data
const notes = // <-- this is commited ok without explicit return
// converting object to array
// extracting firebase ids for manipulating existing notes
for (let key in incoming) {
const note = incoming[key]
note.id = key
notes.push(note)
}
console.log(notes)
commit('SET_NOTES', notes)
// return notes <-- tried that, no effect!
})
.catch((error) => {
console.log('Error: ', error)
})
},
...commiting 2 other things needed for my app
}
...other actions...
})









share|improve this question
















I can't seem to get the data I need using mapActions from my store. I am doing an Axios GET (I turn that data to an array), and pass that data to my home.vue, and render a list of notes.
Now, it works fine if I use mapGetters, but to my understanding, I can access data directly from mapActions, I've seen people do it, but so far I can't. Or can I?



Home.vue:



  export default {
methods:{
// Not Working
...mapActions(
['getNotes']
),
created(){
// Not working
this.getNotes()
console.log(this.getNotes())//returns pending Promise
}
}


my store.js



export default new Vuex.Store({
state: {
...other stuff in state...
// this is getting the notes from firebase
notes: {}
},
getters: {
...other getters...
notes: state => state.notes
},
mutations: {
...other mutations...
SET_NOTES (state, notes) {
state.notes = notes
}
},
actions: {
getNotes ({ commit }) {
axios.get('/data.json')
.then(res => {
const incoming = res.data
const notes = // <-- this is commited ok without explicit return
// converting object to array
// extracting firebase ids for manipulating existing notes
for (let key in incoming) {
const note = incoming[key]
note.id = key
notes.push(note)
}
console.log(notes)
commit('SET_NOTES', notes)
// return notes <-- tried that, no effect!
})
.catch((error) => {
console.log('Error: ', error)
})
},
...commiting 2 other things needed for my app
}
...other actions...
})






vue.js axios vuex






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 29 '18 at 13:15







Stamatis Deliyannis

















asked Dec 28 '18 at 12:59









Stamatis DeliyannisStamatis Deliyannis

217




217













  • It should be this.notes(). And don't forget that your action is async one, so state will be changed after your console.log call.

    – Styx
    Dec 28 '18 at 17:06





















  • It should be this.notes(). And don't forget that your action is async one, so state will be changed after your console.log call.

    – Styx
    Dec 28 '18 at 17:06



















It should be this.notes(). And don't forget that your action is async one, so state will be changed after your console.log call.

– Styx
Dec 28 '18 at 17:06







It should be this.notes(). And don't forget that your action is async one, so state will be changed after your console.log call.

– Styx
Dec 28 '18 at 17:06














1 Answer
1






active

oldest

votes


















0














I don't see you have return the notes data as a return value inside your action getNotes(). At the end of your success callback all you did is commit your data into the notes commit('SET_NOTES', notes).




Return your notes data




getNotes ({ commit }) {
axios.get('/data.json')
.then(res => {
const incoming = res.data
const notes =
// converting object to array
// extracting firebase ids for manipulating existing notes
for (let key in incoming) {
const note = incoming[key]
note.id = key
notes.push(note)
// array.reverse()
}
console.log(notes)
commit('SET_NOTES', notes)
// HERE YOU RETURN YOUR NOTES DATA
return notes
})
.catch((error) => {
console.log('Error: ', error)
})
}





share|improve this answer
























  • Ok, actually I had to return the whole axios request and the notes. I will post the answer later sometime.

    – Stamatis Deliyannis
    Dec 30 '18 at 15:47











  • @Stamatis Deliyannis If you want to return something similar to axios request structure you can return a promise.

    – TriDiamond
    Jan 4 at 2:38













Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53958990%2fhow-to-get-data-with-mapactions%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














I don't see you have return the notes data as a return value inside your action getNotes(). At the end of your success callback all you did is commit your data into the notes commit('SET_NOTES', notes).




Return your notes data




getNotes ({ commit }) {
axios.get('/data.json')
.then(res => {
const incoming = res.data
const notes =
// converting object to array
// extracting firebase ids for manipulating existing notes
for (let key in incoming) {
const note = incoming[key]
note.id = key
notes.push(note)
// array.reverse()
}
console.log(notes)
commit('SET_NOTES', notes)
// HERE YOU RETURN YOUR NOTES DATA
return notes
})
.catch((error) => {
console.log('Error: ', error)
})
}





share|improve this answer
























  • Ok, actually I had to return the whole axios request and the notes. I will post the answer later sometime.

    – Stamatis Deliyannis
    Dec 30 '18 at 15:47











  • @Stamatis Deliyannis If you want to return something similar to axios request structure you can return a promise.

    – TriDiamond
    Jan 4 at 2:38


















0














I don't see you have return the notes data as a return value inside your action getNotes(). At the end of your success callback all you did is commit your data into the notes commit('SET_NOTES', notes).




Return your notes data




getNotes ({ commit }) {
axios.get('/data.json')
.then(res => {
const incoming = res.data
const notes =
// converting object to array
// extracting firebase ids for manipulating existing notes
for (let key in incoming) {
const note = incoming[key]
note.id = key
notes.push(note)
// array.reverse()
}
console.log(notes)
commit('SET_NOTES', notes)
// HERE YOU RETURN YOUR NOTES DATA
return notes
})
.catch((error) => {
console.log('Error: ', error)
})
}





share|improve this answer
























  • Ok, actually I had to return the whole axios request and the notes. I will post the answer later sometime.

    – Stamatis Deliyannis
    Dec 30 '18 at 15:47











  • @Stamatis Deliyannis If you want to return something similar to axios request structure you can return a promise.

    – TriDiamond
    Jan 4 at 2:38
















0












0








0







I don't see you have return the notes data as a return value inside your action getNotes(). At the end of your success callback all you did is commit your data into the notes commit('SET_NOTES', notes).




Return your notes data




getNotes ({ commit }) {
axios.get('/data.json')
.then(res => {
const incoming = res.data
const notes =
// converting object to array
// extracting firebase ids for manipulating existing notes
for (let key in incoming) {
const note = incoming[key]
note.id = key
notes.push(note)
// array.reverse()
}
console.log(notes)
commit('SET_NOTES', notes)
// HERE YOU RETURN YOUR NOTES DATA
return notes
})
.catch((error) => {
console.log('Error: ', error)
})
}





share|improve this answer













I don't see you have return the notes data as a return value inside your action getNotes(). At the end of your success callback all you did is commit your data into the notes commit('SET_NOTES', notes).




Return your notes data




getNotes ({ commit }) {
axios.get('/data.json')
.then(res => {
const incoming = res.data
const notes =
// converting object to array
// extracting firebase ids for manipulating existing notes
for (let key in incoming) {
const note = incoming[key]
note.id = key
notes.push(note)
// array.reverse()
}
console.log(notes)
commit('SET_NOTES', notes)
// HERE YOU RETURN YOUR NOTES DATA
return notes
})
.catch((error) => {
console.log('Error: ', error)
})
}






share|improve this answer












share|improve this answer



share|improve this answer










answered Dec 29 '18 at 5:44









TriDiamondTriDiamond

537114




537114













  • Ok, actually I had to return the whole axios request and the notes. I will post the answer later sometime.

    – Stamatis Deliyannis
    Dec 30 '18 at 15:47











  • @Stamatis Deliyannis If you want to return something similar to axios request structure you can return a promise.

    – TriDiamond
    Jan 4 at 2:38





















  • Ok, actually I had to return the whole axios request and the notes. I will post the answer later sometime.

    – Stamatis Deliyannis
    Dec 30 '18 at 15:47











  • @Stamatis Deliyannis If you want to return something similar to axios request structure you can return a promise.

    – TriDiamond
    Jan 4 at 2:38



















Ok, actually I had to return the whole axios request and the notes. I will post the answer later sometime.

– Stamatis Deliyannis
Dec 30 '18 at 15:47





Ok, actually I had to return the whole axios request and the notes. I will post the answer later sometime.

– Stamatis Deliyannis
Dec 30 '18 at 15:47













@Stamatis Deliyannis If you want to return something similar to axios request structure you can return a promise.

– TriDiamond
Jan 4 at 2:38







@Stamatis Deliyannis If you want to return something similar to axios request structure you can return a promise.

– TriDiamond
Jan 4 at 2:38




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53958990%2fhow-to-get-data-with-mapactions%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Angular Downloading a file using contenturl with Basic Authentication

Olmecas

Can't read property showImagePicker of undefined in react native iOS