I have react HOC for sessionTimeout
. Now I want to Redux connect for use redux action method.
When I call method this.props.actions.logout
It throws error Undefined.
How I suppose to connect redux in my HOC
HOC
import React from 'react';
import { Modal } from 'antd';
import * as actions from '../../actions';
import { connect } from 'react-redux'
import { bindActionCreators } from 'redux'
export default function(ComposedClass){
return class extends React.Component {
constructor(props) {
super(props);
this.state = {
warningTime: 4000,
signoutTime: 5000,
};
}
componentDidMount() {
this.events = [
'load',
'mousemove',
'mousedown',
'click',
'scroll',
'keypress'
];
for (var i in this.events) {
window.addEventListener(this.events[i], this.resetTimeout);
}
this.setTimeout();
}
clearTimeoutFunc = () => {
if (this.warnTimeout) clearTimeout(this.warnTimeout);
if (this.logoutTimeout) clearTimeout(this.logoutTimeout);
};
setTimeout = () => {
this.warnTimeout = setTimeout(this.warn, this.state.warningTime);
this.logoutTimeout = setTimeout(this.logout, this.state.signoutTime);
};
resetTimeout = () => {
this.clearTimeoutFunc();
this.setTimeout();
};
warn = () => {
Modal.warning({
title: 'Session Timeout',
content: 'Your session is about to expire in 1 mintue',
});
};
logout = () => {
this.props.actions.logout()
};
render() {
return (
<div>
<ComposedClass {...this.props} />
</div>
);
}
}
}