我在React redux中工作,并创建一个数字类型字段。event.target.value返回一个字符串,因为它是数字类型编辑器,它必须以数字的形式返回值,所以我将值解析为number。当我尝试输入4.5时,问题就出现了。首先,当我键入4时,它将被解析为4(对数字的刺)。但是当.输入数字4.得到解析为4时,我只是没有输入浮点值。
设onChangeText =(值)=>{fieldProps.onChange(parseFloat(值));}
如果我在onBlur中解析值,那么它将工作,但是对于状态管理,我必须使用onChange。是否有任何方法将4.字符串解析为4.编号。
发布于 2016-09-24 05:44:15
您可以在状态中存储用户的文字输入,然后应用所需的逻辑,并将结果单独存储在父元素的状态中?
下面是一种潜在的方法:translating between cents and dollars in html input in React
发布于 2016-09-24 08:22:27
您可以使用onBlur而不是onChange。这种方法的另一个好处是减少了Redux操作的数量;而不是在每个按键上触发一个操作,而是在用户完成输入数据时触发一个操作。
这还需要使用defaultValue而不是value将组件链接到数据。所以组件看起来应该是这样的:
<input type="number" defaultValue={this.props.value} onBlur={onChangeText} />这意味着只有当用户完成输入并模糊输入元素时,此操作才会触发。
https://stackoverflow.com/questions/39672804
复制相似问题