fix(editor-sdk): prevent NumberField auto converting undefined to 0

This commit is contained in:
Bowen Tan 2022-09-20 18:17:15 +08:00
parent 3b7289999a
commit 10f195a85e

View File

@ -20,15 +20,16 @@ declare module '../../types/widget' {
export const NumberField: React.FC<WidgetProps<NumberFieldType>> = props => {
const { value, onChange } = props;
const [stringValue, setStringValue] = React.useState(String(value));
const [stringValue, setStringValue] = React.useState('');
const numValue = useRef<number>(value);
useEffect(() => {
// Convert value to boolean after switch from expression widget mode.
if (typeof value !== 'number') {
onChange(0);
setStringValue('0');
numValue.current = 0;
// Convert value to number after switch from expression widget mode.
if (value !== undefined && typeof value !== 'number') {
const num = Number(value) || 0;
onChange(num);
setStringValue(String(num));
numValue.current = num;
}
}, [onChange, value]);