<InputValidator /> который оборачивает поле ввода и имеет в себе логику валидации. В этот компонент можно передать правила валидации (pattern, length, и т.д.), а на onChange уже делать dispatch и обновлять глобальное состояние.onChange, вторым параметром, после события, или добавлять в объект события.render() {
let component = true ? <Comp1 /> : <Comp2 />;
return (
<div>{component}</div>
);
}