• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

REACT export hook ???

Object Storage Arubacloud
0 głosów
189 wizyt
pytanie zadane 26 grudnia 2020 w JavaScript przez sKodowany Obywatel (1,150 p.)

Witam ponownie,

 

Pytanie brzmi - jak zrobić export hooka z FileA do FileB i vice versa by wzrost wartości w FileA obniżał wartość w FileB. I vice versa kiedy klikamy w FileB

Kod skrócony, uproszczony


FileA:

import React, {useState} from 'react'
import {valB, setValB} from './FileB'

function FileA() {

    const [valA, setValA] = useState(1)


    return (<>
            <button 
                onClick={()=> ( setValA(valA+1), setValB(valB-1)
                )}
                > {valA} </button>

    </>)
}

export default FileA

File B: to samo tylko inne nazwy, rzecz jasna

Próbowałem z różnymi opcjami export / import - ale żadna nie działa...

1 odpowiedź

0 głosów
odpowiedź 29 grudnia 2020 przez rafal.budzis Szeryf (85,260 p.)

Jest parę rozwiązań. Najprostszym wydaje się zapisywanie stanu w komponencie wyżej? 

function Component() {
    const [valA, setValA] = useState(1)
    const [valB, setValB] = useState(1)

    return <div>
        <FileA value={valA} setValue={()=> ( setValA(valA+1), setValB(valB-1)} />
        <FileB value={valB} setValue={()=> ( setValB(valB+1), setValA(valA-1)} />
    </div>
}


FileA: 
function FileA({value, setValue}) {
    return <button onClick={setValue} > {value} </button>
}

Jeśli komponenty FileA i FileB są wywoływane w rożnych miejscach i nie można tego zmienić wówczas przydadzą się konteksty reactowe :) 

komentarz 29 grudnia 2020 przez sKodowany Obywatel (1,150 p.)

Generalnie znalazłem rozwiązanie - czy może dostałem - na Stack...

Ale w moim programistycznym przypadku nieco mi sprawę komplikuje...

Mam bowiem 5 plików każdy zawierający Button i swoją zmienną aktywności Active.

Button1: onClick -> ActiveBut1++ && restActiveButts--

Czego użyć - jak to podzielić i czym powiązać - by nie tylko działało (wciśnięte w jeden plik typu Class działa = 500 linii kodu LOL) - ale miało grację i programistyczny ład?!

Jeżeli widzę to tak:

App.js:


  return (
   <div className="App">
    <Title/>
    <First/>
    <Second />
    <Third/>
    <Fourth/>
    <Fifth/>    
  </div>
  );

Nth.js

const [valN, setValN ] = useState(1)
const [buttN, setButtN ] = useState(1) ---> niech to się nazywa: poziom aktywności przycisku

<bubtton onClick=() => {

  setValN(valN+1),
  setButtN(buttN+1), - wzrost poziomu aktywności dla tego przycisku
  set.Butt[!N](val - 1)  - spadek poziomu aktywności dla reszty przycisków

}  >

To  czy Twoje rozwiązanie będzie w moim wypadku dobre?

Jestem nowy w React, więc nie mam jeszcze skali porównawczej - może prócz tego mojego  500 liniowego pliku, który śmieje się mi się prosto w nos... ;-))

Podobne pytania

+1 głos
1 odpowiedź 385 wizyt
pytanie zadane 3 sierpnia 2021 w JavaScript przez xjafajx Użytkownik (740 p.)
0 głosów
0 odpowiedzi 129 wizyt
0 głosów
1 odpowiedź 97 wizyt
pytanie zadane 2 lutego 2019 w PHP przez Piotr Szramowski Użytkownik (860 p.)

92,572 zapytań

141,422 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...