React Hook to prevent leave window if state is different with setting value
npm install react-beforeunload-stateHow To Use beforeUnLoadState!
beforeunload.
beforeUnLoadState([[value, value], [value, value], ...]);
Javascript
import React, { useState, useRef, useEffect } from "react";
import { beforeUnLoadState } from "react-beforeunload-state";
const prev_content = {
til: "I Study React Hooks",
msg: "Star Me!"
};
export default function App() {
const [til, setTil] = useState("");
const [msg, setMsg] = useState("");
const prev_til = useRef("");
const prev_msg = useRef("");
// Structure : [[value, value], [value, value], [value, value], ....]
beforeUnLoadState([
[prev_til.current, til],
[prev_msg.current, msg]
]);
// ComponentDidMount
useEffect(() => {
const { til: init_til, msg: init_msg } = prev_content;
// initialize value from some responses
setTil(init_til);
setMsg(init_msg);
prev_til.current = init_til;
prev_msg.current = init_msg;
}, []);
return (
TIL(Today I Learned)
setTil(e.target.value)} />
Message Send
setMsg(e.target.value)} />
);
}
``