javascript - 在功能组件中结束后如何重新启动 React Joyride Tour?
问题描述
我正在尝试在游览结束后将 Joyride 的 run 属性设置回 false,但我不确定如何执行此操作。我尝试过使用他们的回调函数,但我找不到使用函数式组件的示例。这是我的 Joyride 组件代码:
<Joyride
run={run}
steps={steps}
debug
continuous
showSkipButton
showProgress
callback={handleJoyrideCallback()}
styles={{
options: {
arrowColor: theme.palette.common.white,
primaryColor: theme.palette.secondary.main,
textColor: theme.palette.primary.dark,
width: 500,
zIndex: 10000,
},
buttonNext: {
backgroundColor: theme.palette.secondary.main,
border: "none",
borderRadius: 0,
color: theme.palette.common.white,
"&:focus": {
outline: "none !important",
},
},
buttonBack: {
color: theme.palette.primary.dark,
marginLeft: "auto",
marginRight: 5,
},
buttonClose: {
color: theme.palette.primary.dark,
height: 14,
padding: 15,
position: "absolute",
right: 0,
top: 0,
width: 14,
},
}}
/>
这是回调函数:
const handleJoyrideCallback = (data) => {
const { status, type } = data;
const finishedStatuses = [STATUS.FINISHED, STATUS.SKIPPED];
if (finishedStatuses.includes(status)) {
setRun(false);
}
};
还有 setRun 的东西:
const [run, setRun] = useState(false);
解决方案
这是因为您正在调用该函数
handleJoyrideCallback in callback={handleJoyrideCallback()}
你应该使用:
callback={handleJoyrideCallback}
推荐阅读
- javascript - Jquery`trigger`调用延迟处理
- azure - 使用多个策略拒绝操作启用对单个资源组的多个标记
- kotlin - 如何修复在应用程序启动时未加载的 micronaut 千分尺 bean
- android-checkbox - 如何在 Android Studio 中重载复选框相关函数
- javascript - 从作为数组的 firestore 中保存字段
- c++ - 寻找一种单一的计时方法来测试除输入之外的各种算法
- nginx - EC2 节点后端应用程序 [504 网关超时]
- database - SQLite 查询使用 sum 返回错误值的原因
- html - 低于 600 像素的响应式设计会导致导航栏出现问题?
- node.js - 如何使用嵌套 _id 填充同一集合中的数据?