I have a relatively complex React component, that displays information about real estate properties. The component is shown below:
import { useState, useEffect } from "react"
import { Container } from 'react-bootstrap';
import BBRMapping from "./BBRMapping";
const AnvendelseDisplay = ({type, anvendelse}) => {
const [ a, setA ] = useState(0);
useEffect(() => {
(async() => {
const bbrmap = new BBRMapping();
const val = await bbrmap.MapBBRCode(type, anvendelse);
setA(val);
})();
}, []);
return (
<>
<p>Anvendelse: {a.value}</p>
</>
);
}
const ResultsDisplay = (props) => {
const hest = props.hest;
const bbrmap = new BBRMapping();
return(
<>
<Container>
<h2>Grund</h2>
<p>Grundareal: {hest.grund.grundareal.grundareal} kvm</p>
<p>BFE-nummer: {hest.grund.grundareal.bfeNummer}</p>
</Container>
{hest.enheder.map((h, i) => {
return(
<Container>
<h2>Enhed</h2>
<AnvendelseDisplay
key={i}
anvendelse={h.enh020EnhedensAnvendelse}
type="EnhAnvendelse" />
<p>Antal vaerelser: {h.enh031AntalVærelser}</p>
<p>Antal badevaerelser: {h.enh066AntalBadevu00e6relser}</p>
<p>Antal vandskyllede toiletter: {h.enh065AntalVandskylledeToiletter}</p>
<p>Boligtype: {bbrmap.MapBoligtype(h.enh023Boligtype)}</p>
<p>Enhedens samlede areal: {h.enh026EnhedensSamledeAreal}</p>
<p>Areal til beboelse: {h.enh027ArealTilBeboelse}</p>
<p>Toiletforhold: {bbrmap.MapToiletforhold(h.enh032Toiletforhold)}</p>
<p>Badeforhold: {bbrmap.MapBadeforhold(h.enh033Badeforhold)}</p>
<p>Koekkenforhold: {bbrmap.MapKoekkenforhold(h.enh034Ku00f8kkenforhold)}</p>
<p>Energiforsyning: {bbrmap.MapEnergiforsyning(h.enh035Energiforsyning)}</p>
</Container>
)
})}
{hest.bygninger.map((h, i) => {
return(
<Container>
<h2>Bygning</h2>
<AnvendelseDisplay
key={i}
anvendelse={h.byg021BygningensAnvendelse}
type="BygAnvendelse" />
<p>Tagdaekningsmateriale: {bbrmap.MapTagdaekningsmateriale(h.byg033Tagdu00e6kningsmateriale)}</p>
<p>Ydervaeggens materiale: {bbrmap.MapYdervaeggensMateriale(h.byg032Ydervu00e6ggensMateriale)}</p>
<p>Samlede boligareal: {h.byg039BygningensSamledeBoligAreal}</p>
<p>Varmeinstallation: {bbrmap.MapVarmeinstallation(h.byg056Varmeinstallation)}</p>
<p>Opfoerelsesaar: {h.byg026Opførelsesår}</p>
<p>Antal etager: {h.byg054AntalEtager}</p>
<p>Koordinat: {h.byg404Koordinat} (Koordinatsystem: {h.byg406Koordinatsystem})</p>
<p>Bebygget areal: {h.byg041BebyggetAreal}</p>
</Container>
);
})}
</>
);
}
export default ResultsDisplay;
My problem is that whenever the value of hest
changes, the two AnvendelseDisplay
components do not update. All other properties update nicely. What do I need to do to get the two AnvendelseDisplay
components to update their data?