Rect Nativeでダークモードを無効にする

検証環境

$ react-native -v
react-native-cli: 2.0.1
react-native: 0.67.3

実装

iOS

ios/{project}/AppDelegate.mを以下のように修正する

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

  // 省略

  // ↓追加
  if (@available(iOS 13, *)) {
    self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
  }
  return YES;
}

※iOS13以下を切るならif文要らないかも

Android

android/app/src/main/java/path/to/project/MainApplication.javaを以下のように修正する

// ↓追加
import androidx.appcompat.app.AppCompatDelegate;

// 省略

public class MainApplication extends Application implements ReactApplication {

   // 省略

  @Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, /* native exopackage */ false);
    initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
    // 追加
    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
  }

最後に

ダークモード対応してるアプリすごい。