Слушатель атрибут в теге не является антипаттерном и используется практически во всех крупных проектах, включая VKontakte.
Во-первых, super это зарезервированное слово.Мало похожа на "эй, смотрите поосторожней с зарезервированными словами. Вижу вы используете Super, его использовать можно, но вот super уже будет нельзя". Более того я вас спрашивал про Super, а не про
lass Login extends Component {
constructor(props) {
super(props);
// ...your code
this.onSubmit = this.onSubmit.bind(this);
};
onSubmit(e) {
// ...your code
}
}
const mapStateToProps = state => ({
isLoginPending: state.isLoginPending,
isLoginSuccess: state.isLoginSuccess,
isLoginError: state.isLoginError,
isAuth: state.isAuth,
});
const mapDispatchToProps = {
login,
authenticated,
};
const { username, password } = this.state;
const { from } = this.props.location.state || { from: { pathname: "/" } };
const { isAuth } =this.state;
if ( this.props.authenticated()) {return <Redirect to={ from } />;}
const {
authenticated,
isAuth,
location: {
state: {
from = { pathname: '/' },
},
} = this.props;
const { username, password } = this.state;
if (authenticated()) return <Redirect to={from} />;
window.addEventListener('keydown', handler);
Копайте в эту сторону.