JavaScript: Wie kann ich Daten zwischen zwei Dateien verteilen?

Hallo zusammen,

ich bitte euch um Hilfe bei meinem Problem. Und zwar muss ich im Studium eine Seite so nachbauen, dass ich mittels einer Filterauswahl eine Liste ausgeben kann.

Letztens haben wir gelernt, dass wir den Code anhand Komponenten aufteilen sollen. Ich habe also die Komponenten Titelleiste (wo der Filter, Logo und Titel enthalten sein sollte), Tabelle und Filter erstellt.

Zudem gibt es ja diese Hauptdatei App.js. In einem ersten Schritt habe ich in der Filter.js Funktionen geschrieben, um meine Daten gemäß der möglichen Suchbegriffe zu filtern und habe den aktuellen Wert, welcher vom Nutzer gewählt wird, in einem useState abgespeichert.

Wie kann ich diesen Wert nun der Tabelle.js übergeben, damit dort anhand der Filterung die Ausgabe generiert werden kann?

ChatGPT hat mir geraten, die Daten zuerst in die App.js zu schreiben. Aber wie geht das? Wie komme ich von einem Child in das Parent?

Ich denke, ihr erkennt, dass ich leider noch sehr unerfahren im Programmieren bin.

Folgend die Codes:

App.js:

const Titelseite = () => {
  return (
    <div className="titelseite-container">
      <BasicTable />
    </div>
  );
};

const Tabelle = () => {
  return (
    <div className="tabelle">
      <div>Tabellenleiste</div>
    </div>
  );
};

function App() {
  const [service_ausg, setService] = useState("");
  const [anbieter_ausg, setAnbieter] = useState("");
  const handleServiceChange = (value) => {
    setService(value);
  };
  const handleAnbieterChange = (e) => {
    setAnbieter(e);
  };

  return (
    <div className="App">
      <Titelleiste>
        <Filter
          onChangeService={handleServiceChange}
          onChangeAnbieter={handleAnbieterChange}
        />
        <BasicTable />
      </Titelleiste>
      <Titelseite />
    </div>
  );
}

export default App;

Titelleiste.js:

import Grid from "@mui/material/Grid2";
import { Filter } from "./Filter";
import { useState } from "react";
import data from "./data/tableData.json";

export const Titelleiste = () => {
  const getData = (data) => {
    console.log("Ich bin in Titelleiste und komme von Filter");
  };

  return (
    <Grid container spacing={2}>
      <Grid item size={4}>
        <p>
          <img src="geoharvester.png" width="100px" height="50px" />
        </p>
      </Grid>
      <Grid item size={4}>
        <p>Ein Katalog für schweizer Geodienste</p>
      </Grid>
      <Grid item size={4} container justifyContent="flex-end">
        <p>
          <Filter onChange={getData} />
        </p>
      </Grid>
    </Grid>
  );
};

Filter.js :

import "./App.css";
import { useState } from "react";
import InputLabel from "@mui/material/InputLabel";
import MenuItem from "@mui/material/MenuItem";
import FormHelperText from "@mui/material/FormHelperText";
import FormControl from "@mui/material/FormControl";
import Select from "@mui/material/Select";
import data from "./data/tableData.json";
import { App } from "./App";

export const Filter = ({ onChangeService, onChangeAnbieter }) => {
  let array_service = data.map((element) => element.service);
  let array_service_ausg = [...new Set(array_service)]; //* new "Set", entfernt automatisch die Duplikate und erstellt ein neues Objekt. Das neue Objekt wird mittels den "..." in eine Liste gespeichert
  let array_anbieter = data.map((element) => element.anbieter);
  let array_anbieter_ausg = [...new Set(array_anbieter)];
  const funService = (e) => {
    const [service_ausg, setService] = useState("");
    setService(e.target.value);
  };
  const funAnbieter = (e) => {
    TransferAnbieter(e.target.value);
  };

  return (
    <div>
      <form>
        <Select name="service" onChange={funService} sx={{ width: 100 }}>
          {array_service_ausg.map((service) => (
            <MenuItem value={service}>{service}</MenuItem>
          ))}
        </Select>
      </form>
      <Select name="anbieter" onChange={funAnbieter} sx={{ width: 100 }}>
        {array_anbieter_ausg.map((anbieter) => (
          <MenuItem value={anbieter}>{anbieter}</MenuItem>
        ))}
      </Select>
      <br />
    </div>
  );
};

Nach einigen Stunden, die ich bereits in die Recherche meines Problems investiert habe, danke ich euch herzlich für eure Hilfe.

Bild zum Beitrag
HTML, IT, Webseite, JavaScript, HTML5, Code, Informatik, Programmiersprache, Softwareentwicklung, Webentwicklung, Frontend, React
Ausbildung wegen Krankheit im Neujahr 2025 Anfangen?

Hallo zusammen,

ich hatte Mitte August eine leichte Herzmuskelentzündung. Nach etwa zwei Monaten und dem MRT-Befund haben mir mein Kardiologe und meine Hausärztin bestätigt, dass ich mit der Ausbildung beginnen darf. Ich war einen Tag dort, aber es ging mir immer noch nicht gut, da sich die Symptome bei der Arbeit wieder verstärkten. Einen Tag später bin ich direkt krank geworden (Erkältung oder Grippe) und habe mich krankgemeldet.

Am Wochenende ging es mir tatsächlich etwas schlechter.

Mit meinem Arbeitgeber habe ich bereits über meine Situation gesprochen, und er sagte, dass ich, falls es mit der Arbeit nicht klappt, im Jahr 2025 mit der Ausbildung beginnen kann, was mich sehr freut.

Nun möchte ich meinen Ausbildungsleiter fragen, ob es sinnvoll wäre, mich noch zwei weitere Monate zu schonen und dann im Januar, also im neuen Jahr, einen erneuten Versuch zu starten.

Meine Idee wäre, dass ich kündige, damit ich wegen der Krankheitstage nicht von der Prüfung ausgeschlossen werde, und im Januar dann den neuen Arbeitsvertrag unterschreibe.

Ein Freund von mir hat seine Ausbildung auch erst im Februar begonnen, allerdings aus anderen Gründen.

Es handelt sich um einen Bürojob, und zuvor hatte ich bereits eine ähnliche Ausbildung im Büro, bei der die Inhalte im ersten Lehrjahr in der Berufsschule dieselben waren.

Denkt ihr, es wäre machbar, sich bis zum neuen Jahr weiter zu erholen und dann einen neuen Anlauf zu nehmen? Sollte es bis dahin nicht klappen, könnte ich ja 2025 starten. Ich hoffe, dass ich bis dahin wieder vollständig fit bin.

Medizin, Gesundheit, Kündigung, Erkältung, Virus, Bewerbung, Job, Prüfung, Gehalt, IT, Berufswahl, Krankheit, Arbeitgeber, Herz, Karriere, Büro, Arzt, Ausbildungsvertrag, Azubi, Berufsschule, Fachabitur, Gesellschaft, IHK, Informatik, Kardiologie, Kaufmann, Probezeit, Weiterbildung, Herzmuskelentzündung
VirtualBox Windows - with/without Activating?

Moinsen, ich möchte gerne meine Windows 11 Pro Version noch einmal in einer VBox installieren.

Diese möchte ich dann gerne nach erfolgreicher Installation quasi kopieren um dann immer wieder auf ein frisches Windows zurückgreifen zu können.

Jetzt stellt sich mir die Frage, wie das mit der Aktivierung aussieht.

Ich habe auf meinem PC Win 11 Pro.

Beim installieren brauchte man schon den Key.

Jetzt kann bzw. möchte ich den ungerne in der VM eingeben.

Die VM soll zu Testzwecken von Dateien und Software sein, um sicher zu gehen, dass da nichts weiter passiert.

Kann man bei Win 11 auch irgendwie 30 Tage testen oder so wie vorher bei den Versionen?

Wenn ja, wie Stelle ich die VM bzw. das ganze so ein, dass der nicht erkennt, dass ich die VM am XY installiert habe und der dann rum meckert.

Alternativ zu Win 11 fällt mir sonst nur Win 10 ein, da habe ich noch meinen alten Key vom PC und soweit ich weiß, kann man da offline installieren.

Dann würde mir nur einfallen, das System vollständig zu installieren (ohne Internet) damit keine Zeitangabe besteht, dann die VM zu sichern und dann kann ich die quasi normal mit Internet nutzen und wenn was ist bzw. der sich nach X Tagen meldet, die VM zurück setzen und neu anfangen. Dann brauche ich keinen Key.

Wie gesagt, das ganze ist nur zu Testzwecken.

Ich wollte nicht die Aktivierung umgehen.

Mir wäre Win 11 am liebsten. Dann sehe ich die Auswirkungen quasi wie auf meinem laufenden PC.

Danke für Infos und Hilfe ✌🏼

Test, Software, Windows, Microsoft, Sicherheit, IT, VirtualBox, VM, Windows Installation, Product-Key, Virtuelle Maschine, Windows 10, Windows Key, Windows-Lizenz, Windows 10 Pro, Windows 11, Windows 11 Pro

Meistgelesene Beiträge zum Thema IT