fix: rate not update #4294

close #4294
v3-button^2
tangjinzhou 2021-06-30 08:38:44 +08:00
parent 891f6dbb5a
commit b12b7f83ca
1 changed files with 10 additions and 3 deletions

View File

@ -1,4 +1,4 @@
import type { ExtractPropTypes, VNode } from 'vue'; import { ExtractPropTypes, VNode, watch } from 'vue';
import { defineComponent, ref, reactive, onMounted } from 'vue'; import { defineComponent, ref, reactive, onMounted } from 'vue';
import { initDefaultProps, getPropsSlot, findDOMNode } from '../_util/props-util'; import { initDefaultProps, getPropsSlot, findDOMNode } from '../_util/props-util';
import { withInstall } from '../_util/type'; import { withInstall } from '../_util/type';
@ -53,7 +53,12 @@ const Rate = defineComponent({
cleanedValue: null, cleanedValue: null,
hoverValue: undefined, hoverValue: undefined,
}); });
watch(
() => props.value,
() => {
state.value = props.value;
},
);
const getStarDOM = (index: number) => { const getStarDOM = (index: number) => {
return findDOMNode(starRefs.value[index]); return findDOMNode(starRefs.value[index]);
}; };
@ -73,7 +78,9 @@ const Rate = defineComponent({
return value; return value;
}; };
const changeValue = (value: number) => { const changeValue = (value: number) => {
state.value = value; if (props.value === undefined) {
state.value = value;
}
emit('update:value', value); emit('update:value', value);
emit('change', value); emit('change', value);
}; };