К содержимому
Hub
Barcha qaydlar

24-avgust, 2026 · 3 daqiqa

Tugma bosiladi va hech narsa qilmaydi

Next.jsReactОтладкаИнтерфейс

Saytda yozishmalar ishlamay qoldi. Belgi bitta va juda yoqimsiz edi: odam «Yozish» tugmasini bosadi va umuman hech narsa bo'lmaydi.

Bunday nosozlik halol «bo'lmadi» dan yomonroq. Matnli xato nima qilish kerakligini aytadi, sukut esa hech narsa aytmaydi.

Uchta sabab bor edi. Birinchi: server amali rad javobini qaytarish o'rniga istisno tashlashi mumkin — sessiya tugaganda shunday bo'ladi. try/catch bo'lmasa, u yo'qoladi.

Ikkinchi: amal ishladi, lekin o'tish bo'lmadi. Uchinchi: o'tish olib boradigan sahifaning o'zi server xatosi bilan qulardi.

Xulosa: interfeysda «hech narsa bo'lmadi» holati bo'lmasligi kerak.

React · TSX
function write(userId: string) {  start(async () => {    try {      const result = await openConversation(userId);      if (result.ok && result.conversationId) {        // Обычный переход, а не router.push: тот, вызванный сразу        // после серверного действия, молча не срабатывал.        window.location.assign(          `/${locale}/account/messages/${result.conversationId}`,        );      } else {        setSearchNote(result.message ?? "Не удалось открыть переписку");      }    } catch {      // Действие может БРОСИТЬ, а не вернуть отказ — например, когда      // истекла сессия. Без перехвата кнопка молча не делала бы ничего.      setSearchNote(        "Не получилось — возможно, истёк вход. Обновите страницу и войдите заново.",      );    }  });}