Skip to content

Commit d422d90

Browse files
authored
fix: add number value transform (#40)
1 parent 0274582 commit d422d90

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/lib/core/components/Form/hooks/useField.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React from 'react';
22

33
import _ from 'lodash';
44

5-
import {isArraySpec, isObjectSpec, isReact18OrMore} from '../../../helpers';
5+
import {isArraySpec, isNumberSpec, isObjectSpec, isReact18OrMore} from '../../../helpers';
66
import {Spec} from '../../../types';
77
import {OBJECT_ARRAY_CNT, OBJECT_ARRAY_FLAG, REMOVED_ITEM} from '../constants';
88
import {
@@ -95,7 +95,11 @@ export const useField = <Value extends FieldValue, SpecType extends Spec>({
9595
setState((state) => {
9696
const _value = _.isFunction(valOrSetter) ? valOrSetter(state.value) : valOrSetter;
9797
const error = validate?.(_value);
98-
const value = transformArrIn(_value);
98+
let value = transformArrIn(_value);
99+
100+
if (isNumberSpec(spec) && value && !error) {
101+
value = Number(value) as Value;
102+
}
99103

100104
let newChildErrors: Record<string, ValidateError> = {...state.childErrors};
101105

@@ -141,7 +145,7 @@ export const useField = <Value extends FieldValue, SpecType extends Spec>({
141145
};
142146

143147
return {onChange, onDrop};
144-
}, [initialValue, setState, name, validate]);
148+
}, [initialValue, setState, name, validate, spec]);
145149

146150
const onBlur = React.useCallback(() => {
147151
setState((state) => ({

0 commit comments

Comments
 (0)