Aktywne Wpisy
zloty_wkret +7
Taki widok z prywatnego balkonu - plus czy minus?
#nieruchomosci
#nieruchomosci
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}
)
}
}