Retrieving the output of a parent computed method in VueJS, using a child component

I am facing difficulties in passing the dynamically changing value of a computed method to my child component. I am creating a button component with different save states, but the button always remains stuck on one state and does not update according to the parent.

The computed method works perfectly fine when I directly use it in the parent without turning it into a button component. Therefore, the problem lies in how I am passing the data.

Parent


    computed: {
      isSaving() {
        return (
          this.$_.values(this.$store.getters["CommonSettings/saving"]).filter(
            status => status && status != "done"
          ).length > 0
        );
      }
    }
    
    <SaveButton v-bind:saveState="isSaving"/>
  

Child

<script>    
    export default {
      name: "saveButton",
      props: ['saveState']
    }
</script>

<template>
  <div class="settings--button-wrapper">
    <button v-if="!saveState">
      Save
    </button>
    <button v-if="saveState">
      Saving..
    </button>
  </div>
</template>

Could you please point out if I am making any obvious mistakes here?

Answer №1

Initial


calculated: {
    isStoring() {
      // include `this.`
      return (
          this.condition && this.condition !== "completed"
        )
      );
    }
}

<StoreButton v-bind:dataState="isStoring"/>

Offspring

<script>    
export default {
  name: "storeButton",
  props: ['dataState']
}
</script>
<template>
  <div class="settings--button-wrapper">
    <!-- apply `dataState` -->
    <button>
      {{ dataState ? 'Storing..' : 'Store' }}
    </button>
  </div>
</template>

Answer №2

It is recommended to utilize the saveState function rather than relying on isSaving.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Exploring the Exciting World of Jquery Cycle and Dynamic Ajax Capt

Utilizing Jquery Cycle for image fading loaded by Ajax, along with displaying corresponding captions using the onBefore option in the plugin. The image transition is functioning perfectly, however, there seems to be a slight issue with the caption display. ...

Which is better for cycling through a list of items: CSS or JavaScript?

Currently, I have a navigation bar set up as an unordered list (<ul>), but some list items are not visible. I want to implement functionality where clicking arrows will move the elements left or right by hiding or showing the leftmost or rightmost it ...

Invoking numerous functions through the (click)= event

When it comes to removing a user from my site, I find myself having to execute multiple database queries to delete the user's ID across approximately 10 different tables. Currently, I am resorting to what I consider a messy workaround where I have mu ...

Error message: "Vue-i18n is not defined in the vuex

I've been attempting to update the locale in my Vue project using Vuex and VueI18n. Initially, I thought I had figured out a way to update the locale by setting the i18n value in the store object and then using it like this (mutation): UPDATE_LAN ...

securing data with javascript object encryption

let User = {}; User.username = e.row.username; User.email = e.row.email; User.password = e.row.password; Here is my user object, which I want to store in a file. But before saving it, I need to encrypt the data for security reasons. When reading the file, ...

Demonstrating reactivity: updating an array property based on a window event

One example scenario involves setting specific elements to have an active class by assigning the property "active" as true (using v-bind:class). This property is modified within a foreach loop, after certain conditions are met, through the method "handleSc ...

The order of console outputs can be inconsistent and may not always align with the order in which they are called

Hello there! I'm diving into the world of JavaScript and have a query to share on Stackoverflow. If something seems missing in my question, please do point it out for me. Question 1: Can someone shed light on why the output sequence in the console s ...

Exploring the (*ngFor) Directive to Iterate Through an [object Object]

Attempting to iterate through the array using *ngFor as shown below. let geographicalArea = [{ "_id": "5e77f43e48348935b4571fa7", "name": "Latin America", "employee": { "_id": "5e77c50c4476e734d8b30dc6", "name": "Thomas", ...

Discover and modify the values of all the keys within nested JSON arrays and objects using JavaScript

I have a nested JSON data structure consisting of arrays and objects. I am looking to convert all the key values from English to Spanish using JavaScript, NodeJS, or AngularJS. { "firstrootkey" : [ //Array of 6 objects { //1st object ...

The final output message from the NPM package is displayed right at the conclusion

Is there a way to add a log message at the end of the npm install process? To enable CLI tab autocompletion run: mypackage completion >> ~/.profile <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d5a5a7bab2a7b0a6 ...

AngularJS encountered an error following a successful GET request

I'm attempting to retrieve data from the server using this code snippet. $scope.get_file_list = function() { delete $http.defaults.headers.common['X-Requested-With']; //We don't want OPTIONS but GET request $htt ...

The error encountered in Heroku logs is due to a Mongoose error where the uri parameter passed to openURI() must be a string, but is

I've been encountering an issue while trying to deploy my project on Heroku. Despite attempting various methods, one error remains unresolved. Here is the snippet of code that I added: useNewUrlParser: true,useCreateIndex: true, app.use(express.urlen ...

Using JavaScript code to dynamically display the value of the variable MyProperty in HTML

Are there any limitations when using this construction in JavaScript? In my codeBehind, there is a property with intricate logic in the get method. It calls other methods and despite debugging showing a good value, it returns an empty string. I'm curi ...

Nodemailer is having issues, what could be the problem?

I am having an issue with Nodemailer. While it works fine on localhost, it gives me an error message. Can anyone help me identify the problem here? Below is a code snippet in React.js: import React from 'react' import styles from './index.c ...

Is there an issue with the JSON data?

"stocksdata" :[{"id":7,"SCRIP":"ASIANPAINT","LTP":3341,"OHL":"BUY","ORB15":"BREAKOUT","ORB30":"NT","PRB":"NA","CAMARILLA& ...

How to access a specific element within an ng-grid

My grid options include: $scope.ngOptions = { data: 'data', columnDefs: [ {field: 'Status', displayName: "Status", cellTemplate: selectTableTemplate, enableCellEdit: true}, {cellTemplate: &apos ...

Issue with Prettier AutoFormatting in a project that combines TypeScript and JavaScript codebases

Recently, I've started incorporating TypeScript into an existing JavaScript project. The project is quite large, so I've decided to transition it to TypeScript gradually. Below is a snippet from my eslintrc.js file: module.exports = { parser: ...

Modify the text and purpose of the button

I have a button that I would like to customize. Here is the HTML code for the button: <button class="uk-button uk-position-bottom" onclick="search.start()">Start search</button> The corresponding JavaScript code is as follows: var search = n ...

Yeoman Error: Issue with 'mkdir' in Javascript Execution

Currently, I am in the process of setting up a Meanjs instance using a Yeoman generator. However, when I execute 'sudo yo meanjs', everything goes smoothly until an issue arises while attempting to create a directory and it fails. Any insights on ...

Is it better to parse HTML in PHP or JavaScript for an iPhone web application?

I am in the process of creating a web application for iPhone/iPod touch. I need to incorporate an external HTML file and extract specific data from it. One approach is to handle this on the server side by creating a separate page that echoes the desired d ...