Issue passing props between parent and child components in VueJS

This is my parent:

<template>
    <Chart :type="bar" :data="[2,15,3,4,5,1,2,4,10,11]"></Chart>
</template>

<script>
import Chart from "./Chart"

    export default {
     components: {
        Chart
    },
  }

</script>

This is my child component:

<template>
    <highcharts :options="chartOptions"></highcharts>
</template>

<script>
import {Chart} from 'highcharts-vue'

    export default {
      props: ["data", "type"],
      components: {
      highcharts: Chart 
    },
    data() {
      return {
        chartOptions: {
          chart: {
            type: this.type
          },
          series: [{
            data: this.data, // sample data
            name: "Test Series",
            color: "blue"
          }]
        }
      }
  }
  }
</script>

I can successfully pass the data using props, but encounter issues with passing the type value. When switching type: this.type to type: "bar", everything functions as expected without any errors in the code itself.

A warning that I receive states:

vue.runtime.esm.js?2b0e:619 [Vue warn]: Property or method "bar" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property.

What mistake am I making?

Answer №1

When attempting to dynamically connect the attribute "type" to bar as if it were a variable, you must bind it appropriately. To pass it as a String, follow these steps:

<Chart type="bar" :data="[2,15,3,4,5,1,2,4,10,11]"></Chart>

Answer №2

When you use :type="bar" in Vue, it means that Vue is looking for a variable or getter named "bar". If you want to pass the value as a string, just remove the ":" before "type".

<template>
    <Chart type="bar" :data="[2,15,3,4,5,1,2,4,10,11]"></Chart>
</template>

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

Utilizing environment variables in a Rails-AngularJS (1.5) project

Currently working on a Rails-AngularJS (1.5) project and encountering difficulties accessing my ENV variables in the JavaScript components such as services and console. I've implemented dotenv, stored my SECRET_KEY in a .env file, and included the fo ...

Setting up an Express route for updating data

I am in the process of developing a MEVN stack CRUD application (Vue, Node, Express, MongoDB). I am currently working on setting up an Express route for handling updates in my app... postRoutes.post('/update/:id', async(req, res)=> { cons ...

Unable to activate the onClick event

My Div element contains input and FontIcons as child elements. When I make changes in the input field and move the focus away, the onBlur event is triggered. However, when I try to click on the FontIcon, the intended click action does not work. After upda ...

Require a warning notification or alert prior to accessing any mature content section on a website

Once upon a time, I stumbled upon a solution online involving javascript that would fade out a webpage until the user clicked Yes or No. If they clicked No, it would redirect them to the front of the site; if they clicked Yes, it would reveal the adult c ...

Nodeca's js-yaml now allows appending '>-' to handle extended strings with ease

With the npm package js-yaml, I am attempting to work with a .yaml file. Although I can manipulate it successfully, I encounter an issue when trying to save a long string. Actual: abvs_adas: >- c2Rhc2Rhc2Rhc2Rhc2RwaW9qbGtkZ2hqbGtzZGhmZ2psaGFzamh ...

Run a function once two or more ajax requests have been successfully completed

Is there a way to perform two separate ajax requests independently and have a function executed only after both of them succeed? Instead of sending one request after the other, is there a way to execute them separately and still trigger the function only w ...

Utilizing a method to nest schemas within schemas thanks to Mongoose

I am currently working on developing a blog that utilizes Node.js as the server-side language and integrates with Mongo DB. Within my blog, users will have the ability to create posts and interact through commenting, just like any typical blog platform. ...

What is the best way to incorporate a N/A button into the dateRangeFilter located in the header of a webix dataTable, enabling the exclusion of N/A values within that specific column?

`webix.ready(function(){ grid = webix.ui({ container:"tracker", editaction:"click", editable:true, view:"datatable", css:"webix_header_border", leftSplit:1, ...

Steps to customize a CSS file within node_modules

Is there a way to make changes to a CSS file in the "node_modules" dependency without them being overwritten when I run npm install? I want to keep the modifications I've made to the node module files. ...

Issue with breakpoints functionality in MUI v5 and React project

I've been attempting to utilize breakpoints for responsive design on my website, but unfortunately, it doesn't seem to be working correctly. Every time I implement a breakpoint, the entire page goes blank. Below is the code snippet I am working w ...

cutting the limit of table rows in Angular by half

I have an array called carsList with 5 values. I am trying to slice it 2 by 2. <table> <tr *ngFor="#item of carsList | slice:0:2; #i = index"> <td>{{i}}. {{item}}</td> </tr> </table> The code above is o ...

What is the best way to retrieve a PDF file from another website and showcase it on our own site without any redirection?

Is there a way to display a pdf from another website without having to redirect to that site? I'm looking for a solution that involves using the URL directly. ...

What is the method for triggering a mouse event when selecting rows in a table?

Is there a way to generate a mouse event when selecting multiple rows? I am looking to capture this event and send it to another destination. Appreciate any help! Best regards ...

Preloading images before loading a div using JavaScript

Can you walk me through implementing object first and then mergeObject in JavaScript? I have an interesting scenario where I need to display the original list followed by a merged list after a short delay. How can I achieve this using JavaScript? Specific ...

How to properly fill state values for testing components with React Testing Library?

Introducing my custom component -> export default() => { const [list, setList] = useState([]) const handleAddToList = () => { // Executes an API call and updates the list state. setList(response); } return ( <div> ...

Tips for detecting when a user has pressed the back button using Vue Router

I am trying to find a way in Vue Router to detect when the URL changes in history mode. Sometimes I manually push new URLs, but I don't want those changes to trigger detection. I'm specifically looking for a solution that detects when the user us ...

"Learn how to implement a dropdown menu using Vue.js and Quasar on Cloud Firebase

Hey there, I'm trying to figure out how to retrieve and display a Firebase array in a dropdown using Vue js. Here's what I currently have: I've read some of your articles before, but I'm having trouble displaying the data from an array ...

Modify the way the menu functions using only CSS or Javascript

Looking to update a menu using only CSS or JavaScript. The menu is designed for an e-commerce website, featuring categories with collapsed subcategories. I'd like the sub-categories to automatically expand when the page loads, eliminating the need fo ...

Guide to creating a React Hooks counter that relies on the functionality of both a start and stop button

I am looking to create a counter that starts incrementing when the start button is clicked and stops when the stop button is pressed. Additionally, I want the counter to reset to 1 when it reaches a certain value, for example 10. I have tried using setInte ...

A guide on utilizing ClassName to insert new items into a DIV

Original HTML code: <span class="specLink"> <specialty><a title="Plastic Surgery" href="link2.aspx">Plastic Surgery</a></specialty> </span> <br /> <span class="specLink"> <specialty2><a titl ...