The reactivity of VUE 3 arrays is not being updated, but individual array elements accessed using array

Currently facing an issue while trying to connect a dynamically updating array of objects to a Konva circle. The circles are appearing as expected, but the problem arises within a for loop where I update player locations based on a "tick". While setting the array[index].x value to a specific number, console.log shows proper updates. However, when logging the entire array, it only displays the final calculated value from the loop.

The players array is initialized in the following manner:

export default {
  data() {
    return {
      roundNumber: 1,
      players: [],

Player values are pushed during setup for each player in the JSON file like this:

        let tempObj = round.teamCT[id]
        tempObj.x = 0;
        tempObj.y = 0;
        tempObj.team = "CT";
        this.players.push(tempObj)

Here's how I'm updating the values:

        console.log(this.players);
        console.log(this.players[index]);
        this.players[index]['x'] = (x-info.x0)*k/info.scale;
        this.players[index]['y'] = (info.y0-y)*k/info.scale;
        console.log(this.players);
        console.log(this.players[index]);

A screenshot illustrates the difference between the array as a whole and array[index]:

I've attempted adding a watch on the entire array, which only toggled once and not after every update. Research led me to Vue.set, but it has been removed in Vue3 and doesn't seem to be the ideal solution.

Any assistance would be greatly appreciated!

Answer №1

Looking to update your data in Vue when Vue.set is no longer available? Try the following approach:

const updatedPlayers = JSON.parse(JSON.stringify(this.players));
updatedPlayers[index].score = "newScore";
this.players = updatedPlayers;

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

sending a parameter in the reverse url using JavaScript

coding in javascript let address = '{% url candidate_resume "cnd_id" %}'; address = address.replace("cnd_id",id); document.getElementById('cell2').innerHTML= '<a href="' + address + '"> View Resume < ...

Error: Jest and Vue3 are unable to find the definition for ShadowRoot

I've been working on setting up Vue3 and Unit Test with Jest. It's been a struggle to get it functioning, and I've tried numerous configurations already. After trying many setups, this is the latest configuration that seems to be "working, ...

Unable to permanently uninstall Node.js

I recently downloaded the forever package using the command: npm install forever -g However, when I attempted to uninstall it using: npm uninstall -g forever I received the message up to date in 0.042s Despite this, I am still able to access the forev ...

Exploring Recursive Functions in Vue.js 3 Single File Components

How can Vue3 be used to implement recursive components effectively? When attempting to utilize recursive components in Vue 3, an error such as Cannot access before initialization may occur. Tree.vue: <template> <Tree v-if="hasChildren&quo ...

Issue with uploading media on Wordpress: "Unfortunately, an error occurred during the upload process. Please attempt again at a later time."

Often times, when trying to upload media from the front-end, I encounter this issue: An error occurred during the upload process It seems like the error occurs sporadically, making it even more challenging to troubleshoot. Sometimes, when logging in fo ...

Using ajax.actionlink to display the desired text

When using an ajax.actionlink @Ajax.ActionLink("Add Last Name", // <-- Text to display "AddTimeSeriesData", // <-- Action Method Name etc.... @id = "link") How can I extract the link text in JavaScript? I attempted to use $(&apo ...

"Incorporating text input from a textbox into a <ul> list

Recently I started a new project which involves adding user-entered text from a textbox into a ul list in Bootstrap. The script for this functionality is placed within the head section of my HTML document. <script type="text/javascript"> fun ...

Generate a new entry and its linked data simultaneously

The Issue: Picture this scenario: I have two connected models, Library which has multiple Books: var Library = sequelize.define('Library', { title: Sequelize.STRING, description: Sequelize.TEXT, address: Sequelize.STRING }); var Boo ...

Send the id from the controller to the script following a Post request

In continuation from the previous question Original question I am currently facing an issue with passing an Id to a link (e.g. http://localhost:1914/en/Events/Index/22). I was advised to pass it via JSON results, but I am unable to retrieve it back in my ...

"Enhance your web development skills by mastering jQuery alongside the

It's curious that jQuery doesn't support the use of the "+" sign. You can see how it functions with "1" and "3", but not with "2+". Just hover your mouse over each div to experience it. <div id="div-2+"></div> JSFiddle $('a. ...

Unusual case of missing lines while reading a file using readline.createInterface()

const readline = require('readline') const fs = require('fs/promises'); (async function() { await fs.writeFile('/tmp/input.txt', [...Array(100000).keys()].join('\n')) await fs.writeFile('/tmp/other.tx ...

Tips on waiting for an event to be processed during a Protractor end-to-end test

I have a straightforward AngularJs 1.4.8 Front-End: https://i.stack.imgur.com/2H3In.png After filling out the form and clicking the OK button, a new person is added to the table. The form resides in the addingPersonController, while the table is control ...

Counting gettext values up to a specified number of occurrences

When clicking a button, the elements within this div receive number values. If a specific pattern is reached in the text of these elements, the test should be ended. For instance, if there are 5 elements under the "someelement" div and three of them conta ...

Protractor's count() function fails to execute properly when called outside of a promise loop

var alerts = element.all(by.xpath("//div[@class='notification-content']")); alerts.count().then(function (val) { console.log(val); }); let compareValue = val; Is there a way to access the 'value' outside of the promise l ...

What steps do I need to take to ensure that when running npm start, Chrome opens in incognito mode or that caching is

During my development process, I have encountered frustrating issues related to caching that are difficult to debug. I am looking for a way to disable caching in order to alleviate this problem. One approach I am considering is modifying the default beha ...

Troubleshooting the issue of process.nextTick not being recognized in Calgolia places.js

After successfully implementing Algolia's places.js in my Angular 7 project using NPM, I encountered an issue. I have integrated a form where one of the fields should be an input. <form [formGroup]="myForm"> <pre style="color: white; b ...

A guide to resolving the issue of invalid objects as a React child in Nextjs13

Seeking help on resolving an issue in Nextjs13, where I'm encountering the error "objects are not valid as a React child (found: [object Promise]). If you meant to render a collection of children, use an array instead" The scenario involves fetching ...

The absence of the 'Access-Control-Allow-Origin' header is reported even though it is actually present

I have been attempting to send a POST request from one website to my own site. Despite allowing CORS access explicitly, every time I try to make the actual POST request, I am faced with the No 'Access-Control-Allow-Origin' header is present on th ...

Is there a way to transform an HTML table from a horizontal layout to a vertical

I have reorganized the bus seating layout horizontally using a table. However, I now need to transform it vertically for mobile phones without disrupting my existing code. My attempt at using transform(rotate90deg) achieved the desired result, but the tab ...

What methods can be used to determine if a session is still active? Are there specific techniques that are effective for verifying session status?

After my initial experience with Web Design, I realized that the way I handled sessions wasn't efficient due to time constraints. I need advice on how to properly handle sessions in web development. In my previous project, I used PHP embedded within H ...