无法解析“4”。到 4

Failed to parse "4." to 4

我正在使用 React-redux 并创建一个数字类型字段。 event.target.value return 是一个字符串,因为它是数字类型编辑器,它必须 return 值作为数字,所以我将值解析为数字。当我尝试输入 4.5 时,问题就来了。首先,当我键入 4 时,它将被解析为 4(字符串为数字)。但是当 . 输入数字时 4. 解析为 4 ,所以我无法输入浮点值。

let onChangeText = (value)=> { fieldProps.onChange(parseFloat(value)); }

如果我解析 onBlur 中的值,那么它将起作用,但对于状态管理,我必须处理 onChange 。有什么方法可以将 4. 字符串解析为 4. 数字。

您可以将用户的文字输入存储在您的状态中,然后应用所需的逻辑并将结果单独存储在父元素的状态中吗?

这是一个可能的方法:

您可以使用 onBlur 而不是 onChange。这种方法的另一个好处是可以减少 Redux 操作的数量;您不是在每次按键时都触发一个动作,而是在用户完成输入数据时触发一个动作。

这还需要使用 defaultValue 而不是 value 来 link 您的数据组件。所以组件看起来像这样:

<input type="number" defaultValue={this.props.value} onBlur={onChangeText} />

这意味着该操作只会在您的用户完成输入并模糊输入元素时触发。