IT이야기

vuex 스토어의 개체에서 값 복사본을 반환하려면 어떻게 해야 합니까?

cyworld 2022. 6. 11. 11:49
반응형

vuex 스토어의 개체에서 값 복사본을 반환하려면 어떻게 해야 합니까?

중요한 것은, 모든 오브젝트를 게터 안으로 되돌리지 않는 것입니다.개체 "single Metric NamesMap" 값 전달이 필요합니다.이것은 메트릭 이름 were id is property입니다.스토어에서 오브젝트를 반환하면 누구나 오브젝트를 변경하여 스토어를 직접 변환할 수 있기 때문에 이것은 매우 중요합니다.기본 유형을 반환하는 getter를 선호하면 이러한 전체 버그를 방지할 수 있습니다.

여기서 변경되는 메트릭을 관찰하고 조건이 작동하면 메트릭 개체를 전달하여 돌연변이를 저장합니다.

watch: {
        metric() {
            if (this.metric) {
                this.setSingleMetricNamesMap({
                    id: this.metric.id,
                    name: this.metric.name })
            }
        }
    },

상태:

singleMetricNamesMap: {}

state getter 컴포넌트에서 전달된 ID로 메트릭 이름을 반환하려고 하면

singleMetricNamesMap: state => id => state.singleMetricNamesMap[id]

상태 돌연변이는 메트릭 개체를 상태에 쓰는 경우

setSingleMetricNamesMap: (state, val) => {
            state.singleMetricNamesMap[val.id] = val.name
        },

메트릭 ID를 state getter에 전달하고 id별로 오브젝트(store.singleMetricNamesMap) 값의 복사본을 반환하는 컴포넌트.그러나 페이지를 다시 로드한 후 개체의 속성, 즉 id에서 정의되지 않고 메트릭의 이름은 메트릭 구성 요소가 변경된 후에만 표시됩니다(예: 편집).store.singleMetricNamesMap 개체에서 값 복사본을 올바르게 반환하는지 여부와 구성 요소가 로드되었을 때 메트릭 이름을 즉시 표시하는 방법을 알려 주십시오.

<z-dash-tile-config-option
            label="Metric"
            :value="singleMetricNamesMap(value.metricId)"
        >

언급URL : https://stackoverflow.com/questions/58256359/how-to-return-a-copy-of-a-value-from-an-object-in-a-vuex-store

반응형