المشكلة: عند فتح شاشة من إشعار أو رابط عميق (Deep Link)، لا يعيد زر الرجوع المستخدم إلى الشاشة الأم المتوقعة في React Navigation، بل يعلق في الشاشة الفرعية حتى لو نقرت مجدداً على شريط التبويبات، وأحياناً لا يستجيب إطلاقاً أو يُغلق التطبيق.

(مثال: Forms → FormEntry):

السبب: يؤدي الانتقال المباشر إلى شاشة فرعية (عبر navigate) إلى إنشاء مكدّس سطحي لا يحتوي على شاشة أم للرجوع إليها.

الحل: استخدم CommonActions.reset لبناء المكدّس بحيث تكون الشاشة الأم والشاشة الفرعية موجودتين معاً، واحرص أيضاً على بناء التنقّل كله بالفهرس (index) نفسه، وإلا فلن تتمكن من التنقّل إلا بين شاشتين فقط:

navigation.dispatch(
      CommonActions.reset({
        index: 0,
        routes: [
          {
            name: 'Main',
            state: {
              index: 1,
              routes: [
                {name: 'Screen1'}, // 0
                {
                  name: 'Forms', // 1
                  state: {
                    index: 1, // FormEntry is the second screen in FormsStack
                    routes: [
                      {name: 'Forms'}, // Forms list
                      {
                        name: 'FormEntry',
                        params: {entry_id, form_id},
                      },
                    ],
                  },
                },
                {name: 'Screen2'}, // 2
                {name: 'Screen3'}, // 3
                {name: 'Screen4'}, // 4
              ],
            },
          },
        ],
      }),
    );