【问题标题】:Adding items to Android React Native Developer menu将项目添加到 Android React Native Developer 菜单
【发布时间】:2016-05-14 22:29:17
【问题描述】:

在 React Native 中进行开发构建时,您可以摇动设备或使用菜单按钮调出开发者菜单。如何向此菜单添加额外的自定义项?我还没有找到任何关于添加另一个项目的文档,但我认为从开发菜单中切换服务器环境(开发、产品等)会非常方便,而不是针对每个环境进行单独的构建测试.

【问题讨论】:

标签: android react-native


【解决方案1】:

您可以使用DevSettings addMenuItem 函数在 React Native 开发者菜单中添加项目

在你的主要App.js 组件中,写

import { DevSettings } from 'react-native';

//...

useEffect(() => {
    // componentDidMount

    // Add our toggle command to the menu
    DevSettings.addMenuItem('Toggle Storybook', () => {
        // Perform your logic here
    });
}, []);

【讨论】:

    【解决方案2】:

    DevSupportManager 类可以为您做到这一点。您可以通过 ReactInstanceManager 从您的 ReactNativeHost 实例中获取它:

    ReactInstanceManager reactInstanceManager = reactNativeHost.getReactInstanceManager();
    DevSupportManager devSupportManager = reactInstanceManager.getDevSupportManager();
    

    有了它,添加一个自定义开发选项,如下所示:

    devSupportManager.addCustomDevOption("Custom dev option", new DevOptionHandler() {
        @Override
        public void onOptionSelected() {
            Toast.makeText(MainActivity.this, "Hello from custom dev option", Toast.LENGTH_SHORT).show();
        }
    });
    

    首先,您在哪里获取 ReactNativeHost 实例取决于您如何构建应用程序。如果您使用react-native init 创建应用程序,您的主应用程序类将包括:

    @Override
    public ReactNativeHost getReactNativeHost() {
        return mReactNativeHost;
    }
    

    ...你可以调用它。

    I have a complete sample here;看MainActivity.OnCreate:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        MainApplication application = (MainApplication) getApplication();
        ReactNativeHost reactNativeHost = application.getReactNativeHost();
        ReactInstanceManager reactInstanceManager = reactNativeHost.getReactInstanceManager();
        DevSupportManager devSupportManager = reactInstanceManager.getDevSupportManager();
        devSupportManager.addCustomDevOption("Custom dev option", new DevOptionHandler() {
            @Override
            public void onOptionSelected() {
                Toast.makeText(MainActivity.this, "Hello from custom dev option", Toast.LENGTH_SHORT).show();
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多