Subscribe on changes!

Computed is not triggered anymore after upgrading vue from 3.2.25 to 3.2.45

avatar
Jan 2nd 2023

Vue version

3.2.45

Steps to reproduce

Define computed field and return to HTML: const gridRows = computed(() => store.state.dynamicgrid["MyStore"].rows)

In HTML, use :isDisabled:

<CButton @click="doSomething" :disabled="!gridRows.filter(row => row.versleten || row.exchange).length"> Continue </CButton>

Set GridRows equal to an array of 5 items. Now change a property in one of the 5 elements of your array. Do not change the array itself!

Vue used to be able to pick changes like this up, but it doesn't anymore.

Even when I rewrite the computed field to where it directly uses one the elements, purely for testing purposes, such as:

const gridRows = computed(() => store.state.dynamicgrid["MyStore"].rows[0].isSomehing

It doesn't actually trigger anymore.

What is expected?

To pick changes up just like it normally would.

What is actually happening?

Button conditions are only evaluated once.

System Info

System:
    OS: Windows 10 10.0.22000
    CPU: (16) x64 AMD Ryzen 9 5900HX with Radeon Graphics
    Memory: 5.80 GB / 27.86 GB
  Binaries:
    Node: 16.14.2 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 8.5.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.22000.120.0), Chromium (108.0.1462.54)
    Internet Explorer: 11.0.22000.120
  npmPackages:
    vue: 3.2.45 => 3.2.45

Any additional comments?

This happened when upgrading Vue from 3.2.25 to 3.2.45

avatar
Jan 2nd 2023

Please provide a runnable reproduction as is required in our issue guidelines.

avatar
Jan 2nd 2023

"runnable reproduction" means source code i can run. Either on sfc.vuejs.org or in a github repo or similar.