Quellcode durchsuchen

fix: (InputNumber) inputnumber will be validate when form init (#873)

rojer vor 3 Jahren
Ursprung
Commit
7590c168e7

+ 1 - 1
packages/semi-foundation/inputNumber/foundation.ts

@@ -382,7 +382,7 @@ class InputNumberFoundation extends BaseFoundation<InputNumberAdapter> {
         this._adapter.setNumber(number);
         this._adapter.setValue(formattedValue);
 
-        if (isString(formattedValue) && formattedValue !== String(propsValue)) {
+        if (isString(formattedValue) && formattedValue !== String(propsValue ?? '')) {
             this.notifyChange(formattedValue, null);
         }
     }

+ 2 - 3
packages/semi-ui/inputNumber/__test__/inputNumber.test.js

@@ -412,9 +412,8 @@ describe(`InputNumber`, () => {
             <InputNumber min={1} value={value} onChange={spyChange} />
         );
         inputNumber.setProps({ value: 0 });
-        expect(spyChange.calledTwice).toBe(true);
-        expect(spyChange.getCall(0).args[0]).toEqual('');
-        expect(spyChange.getCall(1).args[0]).toEqual(1);
+        expect(spyChange.calledOnce).toBe(true);
+        expect(spyChange.getCall(0).args[0]).toEqual(1);
     });
 
     it('fix controlled min value form field', () => {

+ 29 - 0
packages/semi-ui/inputNumber/_story/inputNumber.stories.js

@@ -712,3 +712,32 @@ export const FixPrecision786 = () => {
   );
 }
 FixPrecision786.storyName = 'fix precision 删除后输入非法值会显示 0.00';
+
+
+ export const FixFormValidate = () => {
+  return (
+      <div data-cy="fix-precision-786">
+          <Form  >
+              <Form.InputNumber
+                  field="inputnumber"
+                  label='inputnumber' 
+                  rules={[
+                      {
+                          required: true,
+                      },
+                  ]}
+              />
+              <Form.Input
+                  field="input"
+                  label='input'
+                  rules={[
+                      {
+                          required: true,
+                      },
+                  ]}
+              />
+          </Form>
+      </div>
+  );
+}
+FixFormValidate.storyName = 'fix form validate';