我有以下问题:假设我有一个仅接受特定类型输入的输入,例如仅具有两个小数位的数字。我正在考虑在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;
所以想法是,如果数字无效,它将显示某种错误,否则会将更改冒泡到父组件,这将保持输入值的状态。
你怎么看?