diff --git a/public/app/plugins/datasource/prometheus/querybuilder/shared/LabelFilters.tsx b/public/app/plugins/datasource/prometheus/querybuilder/shared/LabelFilters.tsx index d3c4daf546b..bc0ca2608a6 100644 --- a/public/app/plugins/datasource/prometheus/querybuilder/shared/LabelFilters.tsx +++ b/public/app/plugins/datasource/prometheus/querybuilder/shared/LabelFilters.tsx @@ -1,7 +1,7 @@ import { SelectableValue } from '@grafana/data'; import { EditorField, EditorFieldGroup, EditorList } from '@grafana/experimental'; import { isEqual } from 'lodash'; -import React, { useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { QueryBuilderLabelFilter } from '../shared/types'; import { LabelFilterItem } from './LabelFilterItem'; @@ -14,9 +14,15 @@ export interface Props { export function LabelFilters({ labelsFilters, onChange, onGetLabelNames, onGetLabelValues }: Props) { const defaultOp = '='; - const [items, setItems] = useState>>( - labelsFilters.length === 0 ? [{ op: defaultOp }] : labelsFilters - ); + const [items, setItems] = useState>>([{ op: defaultOp }]); + + useEffect(() => { + if (labelsFilters.length > 0) { + setItems(labelsFilters); + } else { + setItems([{ op: defaultOp }]); + } + }, [labelsFilters]); const onLabelsChange = (newItems: Array>) => { setItems(newItems);