Przeglądaj źródła

Stack can be pushed (#2672)

Guy Carmeli 6 lat temu
rodzic
commit
f7d0371e09
No account linked to committer's email address

+ 1
- 1
lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/ViewController.java Wyświetl plik

@@ -130,7 +130,7 @@ public abstract class ViewController<T extends ViewGroup> implements ViewTreeObs
130 130
         isShown = true;
131 131
         applyOnParentController(parentController -> {
132 132
             parentController.clearOptions();
133
-            parentController.applyOptions(options, (ReactComponent) getView());
133
+            if (getView() instanceof ReactComponent) parentController.applyOptions(options, (ReactComponent) getView());
134 134
         });
135 135
     }
136 136
 

+ 9
- 0
lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/StackControllerTest.java Wyświetl plik

@@ -326,6 +326,15 @@ public class StackControllerTest extends BaseTest {
326 326
         });
327 327
     }
328 328
 
329
+    @Test
330
+    public void stackCanBePushed() throws Exception {
331
+        StackController parent = new StackController(activity, "someStack", new Options());
332
+        parent.ensureViewIsCreated();
333
+        parent.push(uut, new MockPromise());
334
+        uut.onViewAppeared();
335
+        assertThat(parent.getView().getChildAt(1)).isEqualTo(uut.getView());
336
+    }
337
+
329 338
     private void assertContainsOnlyId(String... ids) {
330 339
         assertThat(uut.size()).isEqualTo(ids.length);
331 340
         assertThat(uut.getChildControllers()).extracting((Extractor<ViewController, String>) ViewController::getId).containsOnly(ids);