当前位置:  开发笔记 > 编程语言 > 正文

React Native - initialProperties Android

如何解决《ReactNative-initialPropertiesAndroid》经验,为你挑选了2个好方法。

我在React-Native下工作,我正在寻找通过Java将初始道具传递给JS.这可以在Objective-C中使用initialProperties轻松完成,如下所示:

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

其中initialProperties是一个NSDictionary将在JSON中转换并在JS中可用的this.props.所以我想在Android中做同样的事情.有帮助吗?谢谢



1> Dave Sibiski..:

在Android中,你可以通过initialProps与在launchOptions成捆.

正如源代码中所述:https://github.com/facebook/react-native/blob/7377fdcc70b25eb023e7c6d1b37eeae2a700cb88/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java#L325-L334

所以你可以这样做:

Bundle initialProps = new Bundle();
initialProps.putString("myKey", "myValue");

mReactRootView.startReactApplication(mReactInstanceManager, "MyAwesomeApp", initialProps);


是否可以传递结构化数据,类似于将值的NSDictionary传递给iOS中的React Native的方式?还是仅可能标量值?

2> 小智..:

getlauchOptions已在ReactActivityDelegate中移动,现在我使用此代码:

public class MainActivity extends ReactActivity {

/**
 * Returns the name of the main component registered from JavaScript.
 * This is used to schedule rendering of the component.
 */
@Override
protected String getMainComponentName() {
    return "myAppName";
}

@Override
protected ReactActivityDelegate createReactActivityDelegate() {
    return new ReactActivityDelegate(this, getMainComponentName()) {
        @Nullable
        @Override
        protected Bundle getLaunchOptions() {
            Bundle initialProps = new Bundle();
            initialProps.putString("SOME_VARIABLE_1", BuildConfig.SOME_VARIABLE_1);
            initialProps.putString("SOME_VARIABLE_2", "some variable 2 value");
            return initialProps;
        }
    };
}

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有