diff --git a/packages/flutter/lib/src/cupertino/date_picker.dart b/packages/flutter/lib/src/cupertino/date_picker.dart
index 37bdbe9..79ac686 100644
--- a/packages/flutter/lib/src/cupertino/date_picker.dart
+++ b/packages/flutter/lib/src/cupertino/date_picker.dart
@@ -777,7 +777,7 @@
     }
 
     return MediaQuery(
-      data: const MediaQueryData(textScaleFactor: 1.0),
+      data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
       child: DefaultTextStyle.merge(
         style: _kDefaultPickerTextStyle,
         child: CustomMultiChildLayout(
@@ -1145,7 +1145,7 @@
     }
 
     return MediaQuery(
-      data: const MediaQueryData(textScaleFactor: 1.0),
+      data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
       child: DefaultTextStyle.merge(
         style: _kDefaultPickerTextStyle,
         child: CustomMultiChildLayout(
@@ -1669,11 +1669,9 @@
     }
     final CupertinoThemeData themeData = CupertinoTheme.of(context);
     return MediaQuery(
-      data: const MediaQueryData(
-        // The native iOS picker's text scaling is fixed, so we will also fix it
-        // as well in our picker.
-        textScaleFactor: 1.0,
-      ),
+      // The native iOS picker's text scaling is fixed, so we will also fix it
+      // as well in our picker.
+      data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
       child: CupertinoTheme(
         data: themeData.copyWith(
           textTheme: themeData.textTheme.copyWith(
diff --git a/packages/flutter/test/cupertino/date_picker_test.dart b/packages/flutter/test/cupertino/date_picker_test.dart
index 701febc..69afc81 100644
--- a/packages/flutter/test/cupertino/date_picker_test.dart
+++ b/packages/flutter/test/cupertino/date_picker_test.dart
@@ -1187,6 +1187,51 @@
     handle.dispose();
   });
 
+  testWidgets('CupertinoDataPicker does not provide invalid MediaQuery', (WidgetTester tester) async {
+    // Regression test for https://github.com/flutter/flutter/issues/47989.
+    Brightness brightness = Brightness.light;
+    StateSetter setState;
+
+    await tester.pumpWidget(
+      CupertinoApp(
+        theme: const CupertinoThemeData(
+          textTheme: CupertinoTextThemeData(
+            dateTimePickerTextStyle: TextStyle(
+              color: CupertinoDynamicColor.withBrightness(
+                color: Color(0xFFFFFFFF),
+                darkColor: Color(0xFF000000),
+              ),
+            ),
+          ),
+        ),
+        home: StatefulBuilder(builder: (BuildContext context, StateSetter stateSetter) {
+          setState = stateSetter;
+          return MediaQuery(
+            data: MediaQuery.of(context).copyWith(platformBrightness: brightness),
+            child: CupertinoDatePicker(
+              initialDateTime: DateTime(2019),
+              mode: CupertinoDatePickerMode.date,
+              onDateTimeChanged: (DateTime date) {},
+            ),
+          );
+        }),
+      ),
+    );
+
+    expect(
+      tester.widget<Text>(find.text('2019')).style.color,
+      isSameColorAs(const Color(0xFFFFFFFF)),
+    );
+
+    setState(() { brightness = Brightness.dark; });
+    await tester.pump();
+
+    expect(
+      tester.widget<Text>(find.text('2019')).style.color,
+      isSameColorAs(const Color(0xFF000000)),
+    );
+  });
+
   testWidgets('picker exports semantics', (WidgetTester tester) async {
     final SemanticsHandle handle = tester.ensureSemantics();
     debugResetSemanticsIdCounter();
