我不是在修改初始道具:
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"DcWealth"
initialProperties:nil
launchOptions:launchOptions];
self.rootView = rootView;
Run Code Online (Sandbox Code Playgroud)
只保存实例 self.rootView = rootView
在一些事件发生在本机方面后,我想传递不同的道具:
self.rootView.appProperties = @{ ... };
Run Code Online (Sandbox Code Playgroud)
但我的根视图不会重新渲染并获得新的道具.(如果我手动重新加载JS就会这样做)
文档说:
可以随时更新属性.但是,必须在主线程上执行更新.
我检查并更新主线程上的属性.
什么可能导致这个问题?
相关的github问题:https://github.com/facebook/react-native/issues/15938
我无法解决这个问题,这似乎是一个错误。
所以我只是将 js 代码初始化部分移至didFinishLaunchingWithOptions我正在等待的事件处理程序的主体中。
所以基本上,我仅在本机事件发生后才初始化反应本机应用程序。这是一个黑客而不是一个解决方案,但它对我有用。
| 归档时间: |
|
| 查看次数: |
501 次 |
| 最近记录: |