Я использую React Idle , и я хочу выйти из системы с функцией logout
через X секунд.
Функция выхода из системы расположена в файле действия, работает отлично (когда пользователь нажимает кнопку выхода из системы).
Что мне нужно, так это выходить из системы пользователя, когда приложение бездействует.
Рассмотрим код:
index. js
import React from "react";
import ReactDOM from "react-dom";
import AppWrapper from "./AppWrapper";
ReactDOM.render(<AppWrapper />, document.getElementById("root"));
То есть AppWrapper
обертывания App
и
AppWrapper. js
import React, { useState } from "react";
import App from "./App";
import IdleTimer from "react-idle-timer";
import { connect } from "react-redux";
import { logout } from "./actions/auth";
const AppWrapper = ({ logout }) => {
const [idleTimer, setIdleTimer] = useState(null);
const onIdle = e => {
console.log("user is idle ... bye bye!");
logout(); // Can't call this function
};
return (
<div>
<IdleTimer
ref={ref => {
setIdleTimer(ref);
}}
element={document}
onIdle={() => onIdle()}
debounce={250}
timeout={1000 * 2}
/>
<App />
</div>
);
};
const mapStateToProps = state => ({});
const mapDispatchToProps = { logout };
export default connect(mapStateToProps, mapDispatchToProps)(AppWrapper);
Приложение. js
import { Provider } from "react-redux";
import store from "./store";
const App = () => {
<Provider store={store}>
... The rest of the components of the Application
</Provider>
}
Проблема в том, что я получаю:
Не удалось найти «store» в контексте «Connect ( Приложение)". Либо оберните компонент root в, либо передайте пользовательский поставщик контекста React соответствующему потребителю контекста React в Connect (App) в параметрах подключения.
Я не хочу создавать другой сохранить, так как я могу вызвать функцию выхода из системы без Connect/Redux
?