Aktywne Wpisy

kluha666 +7
Mam takiego znajomego. Raczej bym go określił jako przegrywa. Próbuje mu pomóc, doradzić, wspierać go, nawet bezinteresownie pomogłem mu finansowo gdy tego potrzebował, a on nawet nie podziękuję, tylko narzeka. Samo to, że ja mu szukam pracy (!) bo on nie potrafi. Cały czas żyje przekonaniem, że go wyciągnę z dołka. Próbować jeszcze, czy odpuścić?

Corvus_Frugilagus +128
Wesołych świąt Bożego Narodzenia wszystkim życzę.
źródło: temp_file479204124419561363
Pobierz




const [confirm, setConfirm] = useState(false);
const _confirm = () => {
if (confirm) {
secPress();
} else {
setConfirm(true);
}
console.log(confirm); // <-- zwraca zawsze false
};
useKeypress("Escape", () => {
_confirm();
console.log("test"); // <-- zwraca "test"
});
Źródło
useKeypressHook na Gist#programowanie #javascript #react
Gdy wykonuje sie setConfirm(true) to zmienna confirm nie uzyska natychmiast nowej wartości, a dopiero wtedy gdy ponownie zostanie odpalony hook useState (tylko tam w Twoim kodzie jest bezposrednie przypisanie do zmiennej confirm i to jest poprawne podejscie). A z kolei hook zostanie odpalony dopiero w kolejnej rundzie rerenderowania komponentu.
Zrob sobie console.log(confirm)
na przyszłość dawaj kod na sandbox
źródło: comment_16192519374JxyViEc9ozXdue2IeyiuP.jpg
PobierzuseEffect(() => {
if (confirm) {
secPress();
}
}, [confirm])
@lobo: tez po pierwszym wciśnięciu mi uruchamia secPress()
Hmm, ale jak u ciebie działa to zobaczę co jest nie tak u mnie, dzięki za pomoc
@aptitude:w hooku masz keyup więc będziesz miał po puszczeniu klawisza a nie po wciśnięciu, a Twoja funkcja nazywa się useKeypress
https://react-pwyv2l.stackblitz.io - zoba konsole czy o to chodzi