Я использую React-Native-Navigation v2.18.5 с React Native 0.59.8, и когда я пытаюсь использовать Navigation.setRoot (...) с макетом bottomTabs, приложение просто падает.В консоли ничего не отображается, но logcat показывает это:
java.lang.RuntimeException: Tried to get null value!
at com.reactnativenavigation.parse.params.Param.get(Param.java:14)
at com.reactnativenavigation.viewcontrollers.bottomtabs.BottomTabsController.lambda$createTabs$3(BottomTabsController.java:155)
at com.reactnativenavigation.viewcontrollers.bottomtabs.-$$Lambda$BottomTabsController$hVDDSxSvqNX-4DhQHls8ynB4x2w.map(Unknown Source:4)
at com.reactnativenavigation.utils.CollectionUtils.map(CollectionUtils.java:42)
at com.reactnativenavigation.viewcontrollers.bottomtabs.BottomTabsController.createTabs(BottomTabsController.java:151)
at com.reactnativenavigation.viewcontrollers.bottomtabs.BottomTabsController.createView(BottomTabsController.java:75)
at com.reactnativenavigation.viewcontrollers.ViewController.getView(ViewController.java:167)
at com.reactnativenavigation.viewcontrollers.ParentController.getView(ParentController.java:60)
at com.reactnativenavigation.viewcontrollers.navigator.RootPresenter.setRoot(RootPresenter.java:35)
at com.reactnativenavigation.viewcontrollers.navigator.Navigator.setRoot(Navigator.java:135)
at com.reactnativenavigation.react.NavigationModule.lambda$setRoot$1(NavigationModule.java:70)
at com.reactnativenavigation.react.-$$Lambda$NavigationModule$IfiDeOnYfgJADKZUxIVN9Zforsw.run(Unknown Source:8)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Вот мой код:
import { Navigation } from "react-native-navigation";
import Icon from "react-native-vector-icons/Ionicons";
const startMainTabs = () => {
Promise.all([
Icon.getImageSource("md-body", 30),
Icon.getImageSource("md-time", 30)
])
.then(sources => {
console.log("GOT IMAGES");
console.log(sources[0], sources[1]);
Navigation.setRoot({
root: {
bottomTabs: {
children: [
{
component: {
name: "fitboard.myworkouts",
options: {
buttomTab: {
text: "MyWorkouts",
icon: sources[0]
}
}
}
},
{
component: {
name: "fitboard.hiittimer",
options: {
bottomTab: {
text: "HIITTimer",
icon: sources[1]
}
}
}
}
]
}
}
});
})
.catch(err => {
console.log(err);
});
};
export default startMainTabs;
И экраны также зарегистрированы в моем App.js:
Navigation.registerComponent(`fitboard.hiittimer`, () => HiitTimer);
Navigation.registerComponent(`fitboard.myworkouts`, () => MyWorkouts);
Как видите, я предоставляю Icon, поэтому проблема не в этом ... Кроме того, response-native-navigation не приводит к сбою моего приложения при использовании компоновки компонента.Есть идеи?