반응형
상태가 처음 변경된 후 계산된 값이 반응을 멈춥니다.
내 컴포넌트에는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 |