parseFloat 作为解析函数不允许小数

parseFloat as parse function not allowing decimal

我需要保持我作为浮动的价值。所以我给了我的领域这个解析器:

export const parseDecimal = value => value ? parseFloat(value) : value;
export const formatNumber = value => typeof value === 'number' ? value.toString() : value; // <TextInput> freaks out with string

我在我的领域中这样使用它:

<Field name="decimal" parse={parseDecimal} format={formatNumber} />

我必须使用 formateNumber,因为我使用的是 react-native 并且 <TextInput> 元素只适用于字符串。

然而,每当我点击 . 来写一个小数时,它就会得到 blocked/removed。有没有反正允许小数但连续parseFloat呢?

我使用下一个方法:

export const parseDecimal = value => {
  return !parseFloat(value) || !Number(value) || value.endsWith('.') ? value : parseFloat(value);
};

以及它的使用方式:

<Field
    name={'crop_capacity'}
    placeholder={'Урожайность (ц/га)'}
    parse={(value) => parseDecimal(value)}
    component={InputAdapter}
/>

感谢@Ayush Gupta 上面的评论。