使用无状态功能组件控制输入值?

时间:2018-12-27 13:33:19

标签: javascript reactjs

我有以下问题:假设我有一个仅接受特定类型输入的输入,例如仅具有两个小数位的数字。我正在考虑在SFC中对其进行控制,该SFC包装了输入控制器并在其中包含此逻辑,因此我不必在每个使用它的组件中都具有处理程序。但是,我发现在没有(准确地)保持状态的情况下很难控制它。我想知道我的方法是否正确。

这是证监会的样子:

import React from 'react';
import PropTypes from 'prop-types';

const DecimalNumbersInput = (props) => {

  const onChange = (event) => {
    // Should I do this?
    if (event.currentTarget.value ...) { // checks if it's a decimal number and if it has only two decimal numbers
      props.onChange(event.currentTarget.value);
    } else {
      // Prevents this?
    }
  }

  return (
    <input
      disabled={props.disabled}
      onChange={(event) => {
        onChange(event)
      }}
    />
  );
}

DecimalNumbersInput.propTypes = {
  disabled: PropTypes.bool.isRequired,
  onChange: PropTypes.func.isRequired,
};

export default DecimalNumbersInput;

所以想法是,如果数字无效,它将显示某种错误,否则会将更改冒泡到父组件,这将保持输入值的状态。

你怎么看?

0 个答案:

没有答案