Skip to content

Commit

Permalink
Drobné opravy v lekci React 2
Browse files Browse the repository at this point in the history
  • Loading branch information
FilipJirsak committed May 8, 2024
1 parent 7d08b3b commit 65be21b
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ solutionAccess: protected
::fig[ukázka řešení]{src=assets/ukazka-reseni.png}

1. Založte si novou React aplikaci podle klasického postupu.
1. Uvnitř komponenty `HomePage` vytvořte jednoduchý efekt, který se spustí pří prvním zobrazení komponenty. Uvnitř tohoto efektu zavolejte funkci `alert` a zobrazte vyskakovací okno s nějakou zprávou.
1. Uvnitř komponenty `HomePage` vytvořte jednoduchý efekt, který se spustí při prvním zobrazení komponenty. Uvnitř tohoto efektu zavolejte funkci `alert` a zobrazte vyskakovací okno s nějakou zprávou.
1. Přidejte do vaší komponenty stav `datetime`, jehož výchozí hodnota bude prázdný řetězec. V efektu smažte volání `alert` a uložte do stavu nějaký čas jako řetězec ve formátu

```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ solutionAccess: protected
Uživatelské jméno je povinný údaj
```
Tato zpráva bude vidět pouze pokud je ve stavu `userName` prázdný řetězec. V opačném případě tento div nezobrazujte.
1. Vzpomeňte si na vlastnost `disabled` a zařiďte, aby registrační tlačítko bylo klikatelné pouze v případě, že ve stavu `userName` není prázdný řetězec.
1. Vzpomeňte si na vlastnost `disabled` a zařiďte, aby registrační tlačítko bylo klikatelné pouze v případě, že ve stavu `userName` není prázdný řetězec. HTML atributy, které mají formu příznaku (tj. atribut nemá žádnou hodnotu, ale důležité je, zda se atribut v HTML elementu vyskytuje či nevyskytuje), se v JSX předávají pomocí přiřazení hodnoty `true` nebo `false`. Tj. když v JSX uvedete `<button disabled={true}>Stiskni mne</button>`, je to jako kdybyste v HTML napsali `<button disabled>Stiskni mne</button>`. Pokud naopak uvedete v JSX `<button disabled={false}>Stiskni mne</button>`, výsledné HTML bude vypadat takto: `<button>Stiskni mne</button>`.

:::solution

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Pokračujte v předchozím cvičení.

1. Vytvořte stav `country`, který bude sloužit k uložení hodnoty z vaší nabídky. Výchozí hodnotu stavu nastavte na `Česká republika`.
1. Pomocí události `onChange` zařiďte one-way data binding mezi nabídkou `select` a stavem `country`.
1. Zařiďte two-way data binding mezi nabídkou `select` a stavem `country` tak, aby nabídka zobrazovala výchozí hodnotu uloženou ve stavu.
1. Zařiďte two-way data binding mezi atributem `value` v nabídce `select` a stavem `country` tak, aby nabídka zobrazovala výchozí hodnotu uloženou ve stavu.
1. Zprávu vypisovanou pomocí funkce `alert` po odeslání formuláře změňte na
```text
Uživatel „???“ ze země „???“ se chce zaregistrovat.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ Pokračujte v předchozím cvičení.
Chci pravidelně dostávat novinky do mé e-mailové schránky.
```

1. Do výpisu ve funkci `alert` přidejte informaci o tom, jestli uživatel chce dostávat novinky. Informaci o uživatelově volbě si uložte do stavové proměnné `newsletterAccepted`.
1. Vytvořte si stav `newsletterAccepted`, ve kterém budete mít uloženo, zda si uživatel přeje či nepřeje dostávat e-mailové novinky – tedy stav zaškrtávacího políčka.

1. Přes dvoucestný (two-way) binding propojte stav `newsletterAccepted` a zaškrtávací políčko. Použijete k otmu událost `onChange` a atribut `value`, jako u textových políček. Jako hodnota se bude předávat `true` nebo `false`.

1. Do výpisu ve funkci `alert` přidejte informaci o tom, jestli uživatel chce dostávat novinky.

```text
Uživatel „???“ ze země „???“ se chce zaregistrovat a dostávat pravidelně novinky.
Expand Down
2 changes: 1 addition & 1 deletion daweb/react/formulare-efekty/efekty-api.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Efekty a volání API

Pokud chceme v naší aplikaci zobrazovat data z nějakého API, musíme si tato data stáhnout pomocí nám již známé funkce `fetch`. V čiistéme JavaScriptu jsme byli zvýklí tuto funkci volat ve chvíli, kdy se načítá naše stránka a načíst si všechna data pro celou stránku najednou. V Reactu však můžeme načítat data jen pro každou komponentu zvlášť. Funkci `fetch` tak budeme chtít volat ve chvíli, kdy se naše komponenta poprvé objeví na stránce. To zní jako případ pro použití efektů.
Pokud chceme v naší aplikaci zobrazovat data z nějakého API, musíme si tato data stáhnout pomocí nám již známé funkce `fetch`. V čistém JavaScriptu jsme byli zvyklí tuto funkci volat ve chvíli, kdy se načítá naše stránka – načetli jsme si všechna data pro celou stránku najednou. V Reactu však můžeme načítat data jen pro každou komponentu zvlášť. Funkci `fetch` tak budeme chtít volat ve chvíli, kdy se naše komponenta poprvé objeví na stránce. To zní jako případ pro použití efektů.

Naše poslední aplikace zatím zobrazovala, že svátek má Jiří. To je však pravda pouze jeden den v roce. Pojďme aplikaci vylepšit tak, aby si stáhla aktuální jméno z API.

Expand Down
2 changes: 1 addition & 1 deletion daweb/react/formulare-efekty/efekty-zavislosti.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const Komponenta = () => {
};
```

Tato technika se nám hodí nejčastěji ve chvíli, kdy chceme stáhnout nějaká data z API ve chvíli, kdy komponenta změní svůj stav. V našem příkladu si stáhneme jméno z API, které má svátek v den, který uživatel vybere v kalendáři.
Tato technika se nám hodí nejčastěji ve chvíli, kdy chceme stáhnout nějaká data z API ve chvíli, kdy komponenta změní svůj stav. V našem příkladu si stáhneme z API jméno, které má svátek v den, který uživatel vybere v kalendáři.

```jsx
export const HomePage = () => {
Expand Down

0 comments on commit 65be21b

Please sign in to comment.