import React, { useState } from 'react'; import { ScrollView, View, Text, Image } from 'react-native'; import Card from '_global/Card'; import Space from '../../Space'; import { Tour, Button, TourStepProps } from '@xrnjs/ui'; import { styles } from './style'; export default () => { const [visible1, setVisible1] = useState(false); const [visible2, setVisible2] = useState(false); const [currentStep, setCurrentStep] = useState(0); const { useMeasure } = Tour; const { ref, layout, onLayout, refresh } = useMeasure(); const { ref: ref2, layout: layout2, onLayout: onLayout2, refresh: refresh2, } = useMeasure(); const refreshAll = () => { refresh(); refresh2(); }; const controlledSteps: TourStepProps[] = [ { title: '受控模式', layout: layout, description: '这是受控模式的第一步,步骤切换由外部控制', }, { title: '受控模式', layout: layout2, description: '这是受控模式的第二步,可以通过外部按钮控制', }, ]; const customContentSteps: TourStepProps[] = [ { title: '自定义内容', layout: layout, description: ( 支持在描述中插入自定义组件,如图片、按钮等 ), prevButton: <>, indicatorsRender: () => <>, }, ]; return ( 受控模式 通过外部状态控制当前步骤,实现更灵活的引导流程 当前步骤: {currentStep + 1} 目标元素1 目标元素2 自定义内容 在引导内容中插入自定义组件,如图片、视频等 {/* 受控模式 */} setVisible1(false)} current={currentStep} onChange={setCurrentStep} steps={controlledSteps} onFinish={() => setVisible1(false)} /> {/* 自定义内容 */} setVisible2(false)} mask={false} steps={customContentSteps} /> ); };