Lynx

Pull To Refresh

사용자가 화면을 아래로 당겨 콘텐츠를 새로고침하는 컴포넌트입니다.

사용 가능 버전@seed-design/[email protected], @seed-design/[email protected]
Lynx 예제를 불러오는 중입니다.

Installation

npx @seed-design/cli@latest add ui:pull-to-refresh

요구 사항

SEED의 최소 지원 Lynx Engine은 3.6입니다. PullToRefresh는 @lynx-js/gesture-runtime의 NativeGesture를 사용하므로 앱의 기존 React 플러그인 설정에 enableNewGesture: true를 추가하세요.

lynx.config.ts
pluginReactLynx({
  engineVersion: "3.6",
  enableNewGesture: true,
});

enableNewGesture의 Since 2.16은 엔진 설정의 도입 기록입니다. SEED의 최소 지원 엔진을 뜻하지 않습니다. 설정 위치와 생략 조건은 Feature Flags에서 확인하세요.

Props

PullToRefreshRoot

Prop

Type

onPtrPullStart?((context: PullToRefreshContext) => void) | undefined
onPtrPullMove?((context: PullToRefreshContext) => void) | undefined
onPtrReady?(() => void) | undefined
onPtrRefresh?(() => Promise<void>) | undefined
disabled?boolean | undefined

onPtrRefresh에 새로고침 작업을 반환하는 비동기 함수를 전달하세요. threshold의 기본값은 88, displacementMultiplier의 기본값은 0.75입니다. 당긴 변위가 threshold를 넘은 상태에서 놓으면 새로고침을 시작합니다. Promise가 완료되거나 실패하면 콘텐츠가 원래 위치로 돌아옵니다.

PullToRefreshIndicator

고유 prop이 없습니다.

PullToRefreshContent

Prop

Type

Content는 세로 <scroll-view>입니다. Root에 높이를 지정하고 화면의 세로 스크롤은 Content 하나로 구성하세요. 중첩된 세로 스크롤 컨테이너는 당김 제스처와 경합할 수 있습니다.

Examples

PTR in Tabs

가로로 넘길 수 있는 Tabs Carousel의 Tab 1에만 PullToRefresh를 배치합니다. Tab 2에서는 새로고침하지 않습니다.

Lynx 예제를 불러오는 중입니다.

Disabled

disabled 속성으로 PTR을 비활성화할 수 있습니다. 당기는 도중 비활성화하면 당김이 취소됩니다. 이미 시작한 새로고침은 반환한 Promise가 끝날 때까지 유지됩니다.

Lynx 예제를 불러오는 중입니다.

Prevent Pull

Root 안의 특정 영역에서 당김을 막으려면 usePullToRefreshPreventPull()이 반환한 props를 해당 <view>에 전달하세요. 같은 요소에 main-thread:bindtouchstart를 함께 지정하지 마세요.

Lynx 예제를 불러오는 중입니다.

웹 버전과의 차이

  • Lynx는 Root가 배치와 clipping을 맡고 Content가 세로 스크롤을 담당합니다. asChild는 지원하지 않습니다.
  • Content 내부의 중첩 스크롤 영역을 자동으로 탐지하지 않습니다.
  • 스크롤하다 최상단에 도달한 경우 손을 뗀 뒤 다시 당겨야 새로고침이 시작됩니다.

Last updated on

목차