Run function within Date in Vue.Js

Asked

Viewed 865 times

1

In a Vue.Js component I use this Script template as in the example. On a getter, I inserted a Return of what is received

const GetSegmento = () => (param) => {
  return (() => {
    return param
  })(param)
}

"He will be evolved as I can do what I seek here"

In my component I try to receive the Object or Value that my getter returns in data > segmento where I intend to use once for something else, what I’d like to know is, how do I get the executed return, or just the result in the case when using the Getter GetSegmento in part Data?

In case I put the this.GetSegmento(this.$route) within the Console.log is working perfectly, but would like to use within the Data if that is possible, of course, I do not know if it is possible or how to do.

export default {
  data: () => ({
    segmento: s => this.GetSegmento(this.$route)
  }),

  onIdle () {
    console.log(this.segmento)
  }
}

That’s what comes back when I use the form above

ƒ segmento(s) {
  return _this.GetSegmento(_this.$route);
}

The real goal is also to know if it is possible to use it in a Constant in the following example.

const segmento = s => this.GetSegmento(this.$route)

export default {
    computed: {
      ...mapGetters('Modules', [ 'Segmento1', 'Segmento2' ])
  },

  onIdle () {
    console.log(this[segmento])
  }
}

Explanation with Files

The file I’m referring to is a file of the kind .vue, one template in the following format

<template>
  <div>{{ segmento }}</div>
</template>

<script>
  import { mapGetters } from 'vuex'

  export default {
    data: () => ({
      segmento: ''
    }),

    computed: {
      ...mapGetters('GetUm', [ 'SegmentoUm' ]),
      ...mapGetters('GetDois', [ 'SegmentoDois' ])
    },

    mounted () {
      console.log(this.SegmentoUm(this.$route)) // funciona muito bem
      console.log(this.SegmentoDois(this.$route)) // funciona muito bem
    },

    methods: {
      getSegmento () {
        this.segmento = this.SegmentoUm(this.$route.meta.segmento) // funciona também
        this.segmento = this.SegmentoDois(this.$route.meta.segmento) // funciona também
      }
    }
  }

The only thing I want is to know if it is possible and how to carry out the execution and return of the result of SegmentoUm and or SegmentoDois within the data: segmento or within a const outside the export default as in the example below:

<template>
  <div>{{ segmento }}</div>
</template>

<script>
  import { mapGetters } from 'vuex'

  const segmento = this.SegmentoUm // ou aqui

  export default {
    data: () => ({
      segmento: this.SegmentoUm // ou aqui
    }),

    computed: {
      ...mapGetters('GetUm', [ 'SegmentoUm' ]),
      ...mapGetters('GetDois', [ 'SegmentoDois' ])
    },

    mounted () {
      console.log(this.SegmentoUm(this.segmento)) // então vejo aqui
    },

    methods: {
      getSegmento () {
        this.segmento = this.SegmentoUm(segmento) // ou aqui
      }
    }
  }
  • Just an aside (I’m still reading the question): the parameter })(param) IIFE is unnecessary, since you’re not using it as an argument in function.

  • You can show the store file for that Modules? The question is interesting but not quite clear yet...

  • @Sergio but in question I did not manipulate the Store, I don’t need to take information from Store, only need, if possible, run a getter on data or const

  • @Sergio this })(param) will still be assembled, and it will be used for a dispatch further on

  • I don’t understand what you mean by "getter on date," why don’t you use a computed for that? If we realize(s) the problem the answer does not take long :)

  • @Sergio is that my goal is not to use the getter in created or in the mounted and in the computed is the getter, but I want to execute him on a data or in a const

  • Hi, I’m sorry about my lack of time, I read it now and I still don’t understand what you want to do :) You can create an example here or in jsFiddle, simple, so you can understand better...?

  • Use this jsFiddle if possible: https://jsfiddle.net/chrisvfritz/50wL7mdz/

  • Opa meu amigo @Sergio , rapaz, this is almost what I want to do https://codepen.io/flourigh/pen/vYBpgrx the problem is that I use mapState, mapGetters, mapMuttations, IE, in the example of the link, seems to work as I wish but could not do being mapGetters

  • Is this what you’re looking for? https://codepen.io/sergiocrisostomo/pen/WNedXdJ?editors=1010 Whenever you use the mapGetters you have to pass store: store, in the object that will be a Vue instance.

  • @Sergio then, in this format, really works, the format I sent also works, the problem is in namespace format, IE, I’m using separate modules for each thing, IE, in this fomato that sent I was able to make work even in the example I sent, already in this format here https://codepen.io/flourigh/pen/eYOyLBm - https://codepen.io/flourigh/pen/eYOyLBm.html - https://codepen.io/flourigh/pen/eYOyLBm.babel I could not get it to work

  • Then you must use SelectPagamento in the template where you have express and no express or date

  • @Sergio there in the mustashe is just an example, I want to use as in this format [express]name or in fact [segmento]name just as I use if const is fixed with a string, not a Function, I just want to call a Function in const and receive the Function result because I’m getting Function as in the question

  • You can use SelectPagamento.name... or SelectPagamento ? SelectPagamento.name : ''. Create an example in codepen just like the one you want but it doesn’t work

  • @Sergio beauty, I will try this and I warn you or create the model you mentioned

Show 10 more comments
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.