Closed 1992zhangbo closed 3 years ago
这两个方法执行顺序有问题。 saveStackToHost和getStackFromHost 在我的工程里就是会先去getStackFromHost导致错误
堆栈 [VERBOSE-2:ui_dart_state.cc(186)] Unhandled Exception: NoSuchMethodError: The method '[]' was called on null. Receiver: null Tried calling: Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5) StackInfo.decode package:flutter_boost/messages.dart:46 NativeRouterApi.getStackFromHost package:flutter_boost/messages.dart:264
在下载的示例工程中,如果在初始化FlutterBoost时,未调用下面的代码就会出现问题。(先去getStackFromHost)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
省略代码.....
FBFlutterViewContainer *fvc = FBFlutterViewContainer.new;
[fvc setName:@"tab_friend" uniqueId:nil params:@{} opaque:YES];
fvc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"flutter_tab" image:nil tag:1];
省略代码......
}
我的使用场景如下: 我在App启动的时候,先进行了FlutterBoost初始化,传递了一些必要的参数。在二级页面触发的时候,才会进行路由跳转。
nativeRouterApi.getStackFromHost()经过Flutter -> OC -> Fluttter数据交互后,调用了null,出现NoSuchMethodError 异常。
在close的issue中看到有同学反馈了此问题,并在v3.0-beta.5中已修复,可是v3.0-beta.6中代码被覆盖为旧代码,目前v3.0-beta.11中依然存在,请开发大大看下