私は、ユーザーが何もしなくても、13分の非アクティブ後にタイムアウト警告モーダルを表示し、15分後にセッションを終了する必要があります。私はreactjsを使用してこれを達成する必要があります。私は反応タイムアウトをhttps://www.npmjs.com/package/react-timeout#react-classic-verboseにチェックしましたが、それは助けになりませんでした。 誰かがこれを行う方法を知っている場合は、私と共有してください。反応を使用したセッションタイムアウト警告モーダル
2
A
答えて
4
あなたはこのように、より高次のコンポーネントを作成することができますし、より高次のコンポーネントを介して子コンポーネントを渡すことができ
HOC:
`//コード
export default function(ComposedClass) {
class AutoLogout extends React.Component {
constructor(props) {
super(props);
this.state = {
warningTime: 1000 * 60 * 10,
signoutTime: 1000 * 60 * 15,
};
}
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 =() => {
window.alert("You will be logged out automatically in 1 minute")
console.log('You will be logged out automatically in 1 minute.');
};
logout =() => {
// Send a logout request to the API
console.log('Sending a logout request to the API...');
this.destroy();
};
destroy =() => {
//clear the session
browserHistory.push('/');
window.location.assign('/');
};
render() {
return (
<div>
<ComposedClass {...this.props} />
</div>
);
}
}
}
`
することができますこのHOCを、ルーティングファイル内の非アクティブなためにユーザに警告するすべてのコンポーネントにラップします。
<Route path="/test" component={HOC(comonent)} />
上記のコードコンポーネントは、この機能を追加するページになります。
+0
@Anshul Jainさんへの返信ありがとうございます。これは古い質問だったし、私はもはやそれに取り組んでいない。しかし、このような丁寧な返答に感謝します。 – abhi
+0
それは私の一日を保存してくれてありがとう。がんばり続ける。 –
関連する問題
- 1. ASP.NETのセッションタイムアウト警告
- 2. ASP.NET MVCのセッションタイムアウト警告
- 3. はTEXTAREA値のコンソール警告を反応
- 4. 反応警告の表示大文字
- 5. 警告:のsetInterval(ネイティブに反応)
- 6. Socket.ioて反応ネイティブseTimeout警告
- 7. 警告:反応ルータを使用してナビゲートするときのComponentDidMountのsetState(...)
- 8. モーダルが反応-マテリアライズ
- 9. 還元剤と反応したネイティブを使用してモーダルを開く方法
- 10. モーダルの反応を隠す
- 11. ネイティブパスワードを反応させるのTextInputコントロールが警告
- 12. 反応ルータでこの警告が発生した原因は何ですか?
- 13. 反応したネイティブで警告ダイアログに全文が表示されない
- 14. 警告:空のセクションヘッダーがレンダリングされる - 反応ネイティブ
- 15. グロメットアンカーを反応ルータドームからのリンクとして使用するときにブラウザ警告を取り除く
- 16. は、単純なチェックボックスコンポーネントに反応 - 警告:SETSTATE(...):専用でマウントや実装部品
- 17. Clojureの警告-に反射し、I型反射に警告を取得しています、次のコードで
- 18. は警告に反応:SETSTATE(...)が唯一のマウントまたはマウント部品
- 19. が反応警告:flattenChildren(...):と2人の子供があったのと同じ
- 20. 反応言語を使用したMomentJS
- 21. 反応-d3を使用したプロットグラフ
- 22. ツールチップを使用した反応ブートストラップテーブル
- 23. 反応ネイティブルータフラックスを使用したカスタムnavBar
- 24. 反応ネイティブを使用したバーコードスキャン
- 25. 反応ネイティブを使用したカスタムタブ
- 26. イテレータの使用 - リント警告
- 27. 警告をマッピングする際に固有のキーに反応します
- 28. python mapreduceを使用した誤った警告の特定
- 29. 壊れた自動バインディング反応し、ネイティブとを使用して反応させ、リレーので、私はネイティブ反応し、反応するリレーを使用してい
- 30. ajaxを使用したセッションタイムアウトの問題
私の頭の上には、コンポーネントの 'state'に' active'プロパティを定義してください。 'setTimeout'を介してタイムアウトを設定して、13分の非アクティブ後に' active'を 'false'に設定します。ユーザーがマウスを動かす/画面に触れるたびに、タイムアウトをリセットします。メインアプリケーションコンポーネントでは、セッションを終了するために同様のことを行うことができます。 –