设置rootView.appProperties不会重新渲染根组件

时间:2017-10-18 10:47:23

标签: ios react-native

我没有修改初始道具:

RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                      moduleName:@"DcWealth"
                                               initialProperties:nil
                                                   launchOptions:launchOptions];

self.rootView = rootView;

仅保存实例self.rootView = rootView

在一些事件发生在原生方面后,我想传递不同的道具:

self.rootView.appProperties = @{ ... };

但我的根视图不会重新渲染并获得新的道具。 (如果我手动重新加载JS,它会这样做)

docs说:

  

随时更新属性是可以的。但是,必须在主线程上执行更新。

我检查并更新主线程上的属性。

可能导致此问题的原因是什么?

相关github问题:https://github.com/facebook/react-native/issues/15938

2 个答案:

答案 0 :(得分:0)

似乎是您分享的问题的错误。你正在寻找的工作似乎也包含在这个问题中。

enter image description here

我猜你已经尝试过这种方法了吗?不幸的是,可能没有更好的解决方法。

答案 1 :(得分:0)

我无法修复此问题,这似乎是一个错误。

所以我只是将js代码初始化部分从didFinishLaunchingWithOptions移动到我正在等待的事件处理程序的主体。

所以基本上,我只是在原生事件发生后才初始化react-native app。这是一个黑客而不是解决方案,但它对我有用。