【发布时间】:2022-07-29 00:31:12
【问题描述】:
我尝试使用 useEffect 挂钩更新状态,但它导致了一些错误。每当进行任何更改时,状态都会更新为 sessionStorage。我尝试在 setElements 中使用 useEffect ,我认为这可能会导致问题。是否有最好的方法来设置和获取 sessionStorage 项目以及更新数组状态。(不使用 redux)。
//This is the initial Element Node which will appear by default at start
let prevElement = [{
id: "0",
type: "input",
data: { label: "Input Node", specificElType: "start" },}]
const DnDFlow = () => {
const [elements, setElements] = useState(prevElement);
...
...
...
//I tried to restore the previous work if stored in sessionStorage
useEffect(() => {
if(JSON.parse(sessionStorage.getItem("flowchart-elements")) != null && JSON.parse(sessionStorage.getItem("flowchart-elements")) != undefined){
setElements(JSON.parse(sessionStorage.getItem("flowchart-elements")));
}});
...
...
...
const onNodeDrag = async (event, node) => {
sessionStorage.setItem("flowchart-elements",JSON.stringify(elements));
}
谢谢
【问题讨论】:
标签: react-hooks session-storage react-flow