如何用Hotwire(Stimulus/Turbo/Rails)重载Turbo Frame?
解决Turbo Frame重载不生效的问题
直接调用Turbo Frame原生reload方法
Turbo Frame元素自带reload()方法,无需手动修改src,直接调用就能触发重载:reload() { this.element.reload(); }添加缓存破折号绕过Turbo缓存
若坚持用修改src的方式,可在URL后追加随机参数避免Turbo复用缓存的响应:reload() { const originalSrc = this.element.src; const timestamp = Date.now(); const newSrc = originalSrc.includes('?') ? `${originalSrc}&_=${timestamp}` : `${originalSrc}?_=${timestamp}`; this.element.src = newSrc; }检查Stimulus绑定是否正确
确认Turbo Frame标签已正确绑定你的Stimulus控制器:<turbo-frame id="user-search" src="/user_search" data-controller="user-search"> <!-- 用户列表内容 --> </turbo-frame>后端响应验证
确保控制器返回的HTML包含与页面中一致id的<turbo-frame>标签,Turbo仅会更新匹配id的Frame内容。
内容的提问来源于stack exchange,提问作者D1D2D3D4D5
相关产品推荐
相关产品推荐

