我正在使用 react 和 redux。
我有更少的状态文本输入。我可以像这样使用
<TextInput error={true} /> // Uncontrolled and staelss
所以我可以通过订阅 redux 商店来使用 error/success... 道具。而且我还想提供一种在本地状态下进行验证的方法,用于在一些简单的情况下将状态保存在 redux 存储中会很复杂。
所以我想到了两种方法。
方法 1 HOC withValidation
const SomeInput = props => <TextInput label="Something" />;
const SomeInputWithValidation = withValidation(Input,(input) => {
//perform validation logic
return validation result.
}); // Controlled ans stateful.
方法 2 创建另一个使用无状态、不受控制的版本的组件
class ActiveTextInput extends React.Component { // Controlled and stateful.
//Do something with satate.
render(){
return <TextInput ...control props with state />;
}
}
请帮我选择最好的抽象。谢谢。