반응형
상태가 처음 변경된 후 계산된 값이 반응을 멈춥니다.
내 컴포넌트에는showTrigger
계산된 속성 및saveDataToStore
갱신하는 메서드를 지정합니다.
computed: {
showTrigger() {
if (typeof store.getters["applicationBuilder/getTriggerById"](this.id) === "undefined") {
return false;
}
return store.getters["applicationBuilder/getTriggerById"](this.id).show;
}
},
methods: {
saveDataToStore(info) {
const trigger = {
id: this.id,
type: this.selected.type,
info: info,
show: false
};
store.dispatch('applicationBuilder/updateTriggerById', trigger);
}
}
내 저장소 파일:
const state = {
triggers: []
};
const getters = {
getTriggerById: (state) => (id) => {
return state.triggers.find(trigger => trigger.id === id)
}
};
const actions = {
updateTriggerById({commit}, payload) {
commit('mutateTriggerById', payload);
}
};
const mutatations = {
mutateTriggerById(state, payload) {
let index = state.triggers.findIndex(trigger => trigger.id === payload.id)
state.triggers[index].id = payload.id;
if (typeof payload.type !== "undefined") {
state.triggers[index].type = payload.type;
}
if (typeof payload.info !== "undefined") {
state.triggers[index].info = payload.info;
}
if (typeof payload.show !== "undefined") {
state.triggers[index].show = payload.show;
}
}
};
처음에 요소를 배열에 설정하면 showTrigger가 변경을 받아들입니다.하지만 다음에 바뀔 때마다show
의 특성trigger
어레이에서 get in calculated value를 실행하고 있지 않습니다.
어레이를 시작하는 방법을 변경해야 합니까?다음과 같은 상태에서 어레이의 기본값을 설정하면 도움이 되지 않습니다.
triggers: [
{
id: null,
show: false,
info: {},
type: null
}
],
내가 뭘 잘못하고 있지?
당신의 코드를 테스트한 후, 제 생각엔mutation
추가하다payload
처음에 문제를 해결하고computed
매번 속성이 업데이트되기 시작했습니다.
const mutations = {
mutateTriggerById(state, payload) {
let index = state.triggers.findIndex(
(trigger) => trigger.id === payload.id
);
if(state.triggers[index]) {
state.triggers[index].id = payload.id;
if (typeof payload.type !== "undefined") {
state.triggers[index].type = payload.type;
}
if (typeof payload.info !== "undefined") {
state.triggers[index].info = payload.info;
}
if (typeof payload.show !== "undefined") {
state.triggers[index].show = payload.show;
}
}else{
state.triggers.push(payload);
}
}
};
언급URL : https://stackoverflow.com/questions/65870651/computed-value-stops-reacting-after-the-first-change-in-the-state
반응형
'sourcecode' 카테고리의 다른 글
vue-router 링크가 가끔 잘못된 페이지로 연결되거나 전혀 작동하지 않는 이유는 무엇입니까? (0) | 2022.07.28 |
---|---|
Vuex, 작업 상태 변경 (0) | 2022.07.28 |
VueJ: 감시자 내부에서 구성 요소 속성을 업데이트할 수 없습니다. (0) | 2022.07.28 |
임의의 번호의 Java 반올림 (0) | 2022.07.28 |
Java에서 Array List를 초기화하려면 어떻게 해야 하나요? (0) | 2022.07.28 |