From 2896ab109562f811b3b09ffd4860dd78931b8381 Mon Sep 17 00:00:00 2001 From: Joe Bacal Date: Thu, 8 Aug 2024 15:19:42 -0400 Subject: [PATCH] store function in ref to avoid having to mention it as a dependency --- src/components/App.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/components/App.tsx b/src/components/App.tsx index 1f73ef2..14d3c86 100755 --- a/src/components/App.tsx +++ b/src/components/App.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import React, { useEffect, useState, useRef } from "react"; import { clsx } from "clsx"; import { ILocation } from "../types"; import { kInitialDimensions, kVersion, kPluginName, kDefaultOnAttributes, kSimulationTabDimensions, kDataContextName } from "../constants"; @@ -21,6 +21,8 @@ export const App: React.FC = () => { const [dataContext, setDataContext] = useState(null); const { getUniqueLocationsInCodapData } = useCodapData(); + // Store a ref to getUniqueLocationsInCodapData so we can call inside useEffect without triggering unnecessary re-runs + const getUniqueLocationsRef = useRef(getUniqueLocationsInCodapData); useEffect(() => { const initialize = async () => { @@ -42,7 +44,7 @@ export const App: React.FC = () => { const casesDeleted = values.operation === "selectCases" && values.result.cases.length === 0 && values.result.success; if ( casesDeleted ) { - const uniqeLocations = await getUniqueLocationsInCodapData(); + const uniqeLocations = await getUniqueLocationsRef.current(); if (uniqeLocations) setLocations(uniqeLocations); } }; @@ -50,7 +52,7 @@ export const App: React.FC = () => { }; initialize(); - }, [getUniqueLocationsInCodapData]); + }, []); const handleTabClick = (tab: "location" | "simulation") => { setActiveTab(tab);