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}
/>
);
};