Proper usage of react callback and effect hooks
This commit is contained in:
11
src/App.tsx
11
src/App.tsx
@ -1,7 +1,7 @@
|
|||||||
import Board from './Board';
|
import Board from './Board';
|
||||||
import Burndown from './Burndown';
|
import Burndown from './Burndown';
|
||||||
import TaskEditor from './TaskEditor';
|
import TaskEditor from './TaskEditor';
|
||||||
import React, { useState } from "react";
|
import React, { useState, useEffect, useCallback } from "react";
|
||||||
import VSCodeApi from "./VSCodeApi";
|
import VSCodeApi from "./VSCodeApi";
|
||||||
|
|
||||||
declare var acquireVsCodeApi: Function;
|
declare var acquireVsCodeApi: Function;
|
||||||
@ -29,7 +29,7 @@ function App() {
|
|||||||
const [currentSprint, setCurrentSprint] = useState(null);
|
const [currentSprint, setCurrentSprint] = useState(null);
|
||||||
const [burndownData, setBurndownData] = useState({ series: [] });
|
const [burndownData, setBurndownData] = useState({ series: [] });
|
||||||
|
|
||||||
window.addEventListener('message', event => {
|
const processMessage = useCallback(event => {
|
||||||
const tasks = event.data.tasks
|
const tasks = event.data.tasks
|
||||||
? Object.fromEntries(event.data.tasks.map(task => [task.id, task]))
|
? Object.fromEntries(event.data.tasks.map(task => [task.id, task]))
|
||||||
: {};
|
: {};
|
||||||
@ -78,6 +78,13 @@ function App() {
|
|||||||
}
|
}
|
||||||
setType(event.data.type);
|
setType(event.data.type);
|
||||||
setDateFormat(event.data.dateFormat);
|
setDateFormat(event.data.dateFormat);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
window.addEventListener('message', processMessage);
|
||||||
|
return () => {
|
||||||
|
window.removeEventListener('message', processMessage);
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
Reference in New Issue
Block a user