如何实现learnr教程首次加载时自动重置R代码窗口内容
learnr教程首次运行自动清空代码窗口配置方法
learnr原生提供对应配置项,无需额外编写自定义前端脚本即可实现需求,具体配置方式分两种场景:
全局生效配置
在教程Rmd文档的初始化setup代码块中,添加如下配置,即可让所有练习类代码块在每次教程启动时重置为初始状态,不加载历史残留代码:# setup块内配置 knitr::opts_chunk$set( exercise.startover = TRUE # 核心参数:启动时强制重置所有练习块状态 ) options( # 若不需要保留用户跨访问的练习记录,可将存储模式设为none,刷新即清空 # 若需要保留用户单次访问期间的输入、下次打开再清空,保留默认local存储即可 tutorial.storage = "local" )由于你设置的是供自由练习的空白代码窗口,本身没有预置初始代码,开启该参数后首次加载会直接显示空白编辑区,不会带出之前操作留存的历史代码。
单代码块单独配置
如果仅需要给计算器练习用的空白代码块开清空规则,不影响其他需要保留学习进度的练习块,直接在对应代码块的块参数中声明即可:```r r-calculator, exercise=TRUE, exercise.startover=TRUE} ```
shinyapps.io部署注意事项
- 重新部署前删除项目路径下的缓存文件夹(包括
_learnr_cache、.Rproj.user目录),避免把本地测试产生的历史代码缓存打包上传 - 部署完成后优先使用无痕访问模式验证效果,排除本地浏览器缓存的旧版本资源干扰
- 若之前部署的版本留存了服务端缓存,重新部署时选择启动全新应用实例,不要复用旧实例的存储数据
注意:不建议随意修改全局存储规则为
none,该设置会导致用户刷新页面就丢失所有练习输入,仅适合完全无进度留存需求的纯自由练习场景。
内容的提问来源于stack exchange,提问作者Benn Fine
相关产品推荐
相关产品推荐

