模糊

时间:2017-05-29 18:12:00

标签: reactjs redux react-redux redux-form

我试图理清为什么每当我对输入字段进行聚焦和模糊时,React / Redux / Redux-Form会自动将payload转换为字符串。

必须有一些干扰过程,但我不知道如何排除故障。

我尝试过使用ReduxDevTools Chrome Extension,基本上输出:

type(pin): "@@redux-form/INITIALIZE"
▶meta(pin)
▶payload(pin)
   Amount(pin): 2222

type(pin): "@@redux-form/FOCUS"
▶meta(pin)

type(pin): "@@redux-form/BLUR"
▶meta(pin)
   touch(pin): true
   payload(pin): "2222.00"

2 个答案:

答案 0 :(得分:0)

你需要使用redux-form吗? 如果您的数据可以保留在组件的上下文中,则应该。

如果您不需要处于全局应用状态的数据,则可以选择以下选项:

import React, { Component } from 'react';
import wrapStateHelpers from 'react-state-helpers';

class Example extends Component {
  render() {
    const { mut, values: { someNumber } } = this.props;
    return (
      <input
        type='number'
        value={someNumber}
        onChange={mut('someNumber', parseInt)} />
    );
  }
}

export default wrapStateHelpers(Example);

这只提供了一个事件处理程序和包装组件,它管理组件级状态中的表单状态,然后将该状态作为props中的values对象传递给组件。

请注意parseInt传递给mut。输入字段几乎总是返回一个字符串,react-state-helpers为数据转换提供api(mut的第二个参数可以是任何函数)

这是项目/文档的链接,如果这个

答案 1 :(得分:0)

回想起来,这个案子的答案非常明显。我使用normalize使用我不知道的.toFixed(2)格式化值,始终返回一个字符串。