import { createValidatedComponent } from 'react-validated-component'
...
class priceInput extends React.Component {
constructor(props) {
super(props)
this.setStateAndValidate = this.setStateAndValidate.bind(this)
}
setStateAndValidate(state) {
let keyToValidate = Object.keys(state)[0]
this.props.validate(keyToValidate, state[keyToValidate], this.state)
this.setState({
[keyToValidate]: state[keyToValidate]
})
}
render() {
return <input onChange={(ev) => this.setStateAndValidate({ price: ev.target.value })} />
}
}
const ValidatedComponent = createValidatedComponent(priceInput)
const validators = {
price: { name: 'presence' }
phoneNumber: [
{ name: 'presence' },
{
name: 'length',
maxLength: 9,
disabled: (key, value, state) => {
if (state.isValidating) {
return false
}
return true
}
},
{ validate: (value, key, state) => { } }
]
}
const mapStateToProps = () => ({ validators })
connect(mapStateToProps)(createValidatedComponent(priceInput))