Javascript 如何动态更改另一个vuex组件中的状态?
组件中的状态有问题。我有websocket,上面有一些变化,我把它放在某种状态下。在一个组件中,它可以动态地更改值。但是,当我转到下一个组件(vue路由器)时。它的状态也会发生变化,但不是动态的。嗯。。。在console.log中,将发生更改,但不会更改另一个组件中的值 我怎样才能做到 让我们看一些代码: 这里是我的行动,改变状态Javascript 如何动态更改另一个vuex组件中的状态?,javascript,vue.js,websocket,vuex,vuetify.js,Javascript,Vue.js,Websocket,Vuex,Vuetify.js,组件中的状态有问题。我有websocket,上面有一些变化,我把它放在某种状态下。在一个组件中,它可以动态地更改值。但是,当我转到下一个组件(vue路由器)时。它的状态也会发生变化,但不是动态的。嗯。。。在console.log中,将发生更改,但不会更改另一个组件中的值 我怎样才能做到 让我们看一些代码: 这里是我的行动,改变状态 actions: { play(ctx, array){ axios.get('http://localhost/task_run?tas
actions: {
play(ctx, array){
axios.get('http://localhost/task_run?task_id='+array.id)
var conn = new WebSocket('ws://localhost:8080', "protocol");
conn.onmessage = function (ev) {
ctx.commit('procent', {key:array.key, val:ev.data});
ctx.commit('procentOne', {key:array.key, val:ev.data});
console.log('Message: ', ev);
};
},
},
mutations: {
procent(state, val){
var array = JSON.parse(val.val);
state.process[val.key] = array.procent;
state.processOnePersone[array.comp] = array.procent;
}
},
state: {
process: [],
processOnePersone:[],
},
getters: {
process(state){
return state.process
},
processOnePersone(state){
return state.processOnePersone;
}
}
我有一个简编,它在哪里工作
<v-progress-circular
:rotate="-90"
:size="50"
:width="5"
:value="process[key]"
color="primary"
>
{{ process[key] }}
</v-progress-circular>
<script>
import {mapGetters} from 'vuex';
export default {
name: 'taskListComponent',
computed: {
...mapGetters(['process',]),
},
}
{{进程[key]}
从“vuex”导入{mapGetters};
导出默认值{
名称:“taskListComponent”,
计算:{
…映射器(['process',]),
},
}
以及不起作用的组件
<v-progress-circular
:rotate="-90"
:size="50"
:width="5"
:value="processOnePersone[key]"
color="primary"
>
{{ processOnePersone[key] }}
</v-progress-circular>
<script>
import {mapGetters} from 'vuex';
export default {
name: 'queueComponent',
computed: {
...mapGetters(['processOnePersone',]),
},
}
{{processOnePersone[key]}
从“vuex”导入{mapGetters};
导出默认值{
名称:'queueComponent',
计算:{
…映射器(['processOnePersone',]),
},
}
这可能与“变更检测注意事项”有关:哦,我不知道。我怎样才能做到?我需要App.vue中的数据()?并将我的反应性消息放入data()?我相信这是state.processOnePersone[array.comp]=array.procent代码>线路无反应。因此,在Vuex state()中使用默认值/空值初始化.processOnePersone[array.comp],或者在Vuex中使用Vue.set/arr.$set
。非常感谢。我在变异中添加了Vue.set。我的代码看起来像Vue.set(state.processOnePersone、array.comp、array.procent)。现在它开始工作了。谢谢大家;)此外,不久前我做了一个快速笔:这说明了Vue.set如何获得一些性能影响。由于Vue.set在指定的对象键不存在时生成新对象,因此所有依赖组件都会更新。