diff --git a/components/rate/__tests__/__snapshots__/demo.test.js.snap b/components/rate/__tests__/__snapshots__/demo.test.js.snap
index 987618ff9..5933cad43 100644
--- a/components/rate/__tests__/__snapshots__/demo.test.js.snap
+++ b/components/rate/__tests__/__snapshots__/demo.test.js.snap
@@ -2,45 +2,55 @@
exports[`renders ./components/rate/demo/basic.md correctly 1`] = `
`;
@@ -48,89 +58,119 @@ exports[`renders ./components/rate/demo/basic.md correctly 1`] = `
exports[`renders ./components/rate/demo/character.md correctly 1`] = `
@@ -139,88 +179,108 @@ exports[`renders ./components/rate/demo/character.md correctly 1`] = `
exports[`renders ./components/rate/demo/clear.md correctly 1`] = `
- -
-
-
+
-
+
- -
-
-
+
-
+
- -
-
-
+
-
+
- -
-
-
+
-
+
- -
-
-
+
-
+
allowClear: true
- -
-
-
+
-
+
- -
-
-
+
-
+
- -
-
-
+
-
+
- -
-
-
+
-
+
- -
-
-
+
-
+
allowClear: false
@@ -229,92 +289,112 @@ exports[`renders ./components/rate/demo/clear.md correctly 1`] = `
exports[`renders ./components/rate/demo/disabled.md correctly 1`] = `
- -
-
-
+
-
+
- -
-
-
+
-
+
- -
-
-
+
-
+
- -
-
-
+
-
+
- -
-
-
+
-
+
`;
exports[`renders ./components/rate/demo/half.md correctly 1`] = `
- -
-
-
+
-
+
- -
-
-
+
-
+
- -
-
-
+
-
+
- -
-
-
+
-
+
- -
-
-
+
-
+
`;
-exports[`renders ./components/rate/demo/text.md correctly 1`] = `
normal`;
+exports[`renders ./components/rate/demo/text.md correctly 1`] = `
normal`;
diff --git a/components/vc-rate/src/Rate.jsx b/components/vc-rate/src/Rate.jsx
index 52dfde9a1..3fce65bec 100644
--- a/components/vc-rate/src/Rate.jsx
+++ b/components/vc-rate/src/Rate.jsx
@@ -89,15 +89,16 @@ export default {
this.$emit('hoverChange', undefined);
},
onClick(event, index) {
- const value = this.getStarValue(index, event.pageX);
+ const { allowClear, sValue: value } = this;
+ const newValue = this.getStarValue(index, event.pageX);
let isReset = false;
- if (this.allowClear) {
- isReset = value === this.sValue;
+ if (allowClear) {
+ isReset = newValue === value;
}
this.onMouseLeave(true);
- this.changeValue(isReset ? 0 : value);
+ this.changeValue(isReset ? 0 : newValue);
this.setState({
- cleanedValue: isReset ? value : null,
+ cleanedValue: isReset ? newValue : null,
});
},
onFocus() {
diff --git a/components/vc-rate/src/Star.jsx b/components/vc-rate/src/Star.jsx
index 84c46d805..346acf656 100644
--- a/components/vc-rate/src/Star.jsx
+++ b/components/vc-rate/src/Star.jsx
@@ -67,19 +67,20 @@ export default {
const character = getComponentFromProp(this, 'character');
let star = (
-
index ? 'true' : 'false'}
- aria-posinset={index + 1}
- aria-setsize={count}
- tabIndex={0}
- >
- {character}
- {character}
+
+ index ? 'true' : 'false'}
+ aria-posinset={index + 1}
+ aria-setsize={count}
+ tabIndex={0}
+ >
+
{character}
+
{character}
+
);
if (characterRender) {