Aktywne Wpisy
![zloty_wkret](https://wykop.pl/cdn/c0834752/88c763a79f54be996769209d3e975fc580e6221bb8fe2bc625c87920056df221,q60.jpg)
zloty_wkret +7
Taki widok z prywatnego balkonu - plus czy minus?
#nieruchomosci
#nieruchomosci
![zloty_wkret - Taki widok z prywatnego balkonu - plus czy minus?
#nieruchomosci](https://wykop.pl/cdn/c3201142/ed91569743c9d6dcf54771ebacf6a682ac2416ece6048e98b3b82caf9c114fec,w150.jpg?author=zloty_wkret&auth=2a11a327ab9dcd4a9c526ce3507b5522)
źródło: 8ndmas
Pobierz![Jarek_P](https://wykop.pl/cdn/c3397992/Jarek_P_RpLv1b2mva,q60.jpg)
Jarek_P +69
Ale jaja, normalnie rozchodzić to muszę. Duże korpo z branży IT/Telecom, oddziały po całym świecie, w tym ileś w Europie. W branży krucho, wszyscy zaciskają pasa, więc my oczywiście też, zostaje podjęta decyzja o zamknięciu jednego z istotnych ośrodków, położonego na terenie Niemiec, osoby tamże zatrudnione alokowane w miarę możliwości, a że możliwości takie sobie to w większości uścisk dłoni przełożonego i życzenia powodzenia w dalszym życiu zawodowym - no wiadomo.
Problem
Problem
Mam taki przykład i może ktoś mi wytłumaczy dlaczego tak się dzieje:
const Test = (props) => {
const [click, setClick] = React.useState(0);
React.useEffect(() => {
window.showCkicks = showCkicks;
return () => null;
}, [])
const showCkicks = () => {
return click;
}
return (
setClick(click + 1)}>Klik
Kliki: {click}
)
}
ReactDOM.render(
,
document.getElementById('root')
);
Eksportuje sobie funkcję z komponentu do
window
Po jej wywołaniu zawsze dostaje defaultowe state.Dlaczego wywołanie funkcji z wewnątrz komponentu nie zwróci aktualnych klików?
@LostHighway: po co?
Po to by mieć dostęp do komponentu z zewnątrz. Docelowo bedzie co CustomEvents
Ewentualnie bys musial ta funkcje przydzielac z nowa referencja po kazdym rerenderze czyli po kazdej zmianie stanu.
Oczywiscie kazde z tych rozwiazan jest bezsensu
Działa to już dobrze o ile przejdziemy na komponenty klasowe:
export class Test extends React.Component {
constructor(props) {
super(props);
this.state = {
click: 0
}
}
componentDidMount() {
window.showCkicks = this.showCkicks;
}
showCkicks = () => {
return this.state.click;
}
render() {
return (
{
this.setState(ps => {
return {
click: ps.click + 1
}
});
}}>Klik
Kliki: {this.state.click}
)
}
}