在React Native中进行开发构建时,您可以摇晃设备或使用菜单按钮来打开开发人员菜单。如何添加其他自定义项目到这个菜单中呢?我没有找到任何关于添加另一个项目的文档,但我认为从开发人员菜单中切换服务器环境(dev,prod等)而不是制作单独的构建来测试每个环境将非常方便。
在React Native中进行开发构建时,您可以摇晃设备或使用菜单按钮来打开开发人员菜单。如何添加其他自定义项目到这个菜单中呢?我没有找到任何关于添加另一个项目的文档,但我认为从开发人员菜单中切换服务器环境(dev,prod等)而不是制作单独的构建来测试每个环境将非常方便。
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
});
}, []);
DevSupportManager
类可以帮助您完成这项工作。您可以通过 ReactNativeHost
实例的 ReactInstanceManager
获取它: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;
}
...你可以称之为。
我在这里有一个完整的示例,请查看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();
}
});
}