/
githubmirror
/
react-native
Обзор
Документация
Войти
/
githubmirror
/
react-native
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/rn-tester/js/examples/Dimensions/DimensionsExample.js
66 строк
2 KB
Tim Yung
xplat/js: Auto-fix `react-prefer-namespace-import` ESLint Rule (#56233)
27 мар 2026, 03:04
27 мар 2026, 03:04
bfb6870
Код
Авторство
О чём код?
/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow * @format */ import type {RNTesterModuleExample} from '../../types/RNTesterTypes'; import RNTesterText from '../../components/RNTesterText'; import * as React from 'react'; import {useEffect, useState} from 'react'; import {Dimensions, useWindowDimensions} from 'react-native'; type Props = {dim: string}; function DimensionsSubscription(props: Props) { const [dims, setDims] = useState(() => Dimensions.get(props.dim)); useEffect(() => { const subscription = Dimensions.addEventListener('change', dimensions => { setDims(dimensions[props.dim]); }); return () => subscription.remove(); }, [props.dim]); return ( <RNTesterText variant="label">{JSON.stringify(dims, null, 2)}</RNTesterText> ); } const DimensionsViaHook = () => { const dims = useWindowDimensions(); return ( <RNTesterText variant="label">{JSON.stringify(dims, null, 2)}</RNTesterText> ); }; exports.title = 'Dimensions'; exports.category = 'UI'; exports.documentationURL = 'https://reactnative.dev/docs/dimensions'; exports.description = 'Dimensions of the viewport'; exports.examples = [ { title: 'useWindowDimensions hook', render(): React.Node { return <DimensionsViaHook />; }, }, { title: 'Non-component `get` API: window', render(): React.MixedElement { return <DimensionsSubscription dim="window" />; }, }, { title: 'Non-component `get` API: screen', render(): React.MixedElement { return <DimensionsSubscription dim="screen" />; }, }, ] as Array<RNTesterModuleExample>;