Rails 7 + Turbo:导航时不显示加载状态

问题描述 投票:0回答:1

我在 Rails 应用程序中设置了一个 Turbo 框架,用户可以导航。问题在于,当用户在框架内导航时,turbo 框架需要一些时间来更新,在此期间它会显示加载状态。现在,我希望如果这种情况没有发生,它会显示旧框架,直到新框架准备好,然后替换旧框架,以便用户永远不会看到加载状态。那可能吗?我想这样做,因为这样框架的内容就不会像现在导航时那样“突然移动”。

这是我的(简化的)代码:

index.html.erb

<%= turbo_frame_tag "posts", src: search_path do %>
  Loading results...
<% end %>

_posts.html.erb

<%= turbo_frame_tag "posts" do %>
  <%= link_to "Next Page", search_path(page: (params[:page]&.to_i || 0) + 1) %>
  <% posts.each do |post| %>
    <div>
      <p><%= post.name %></p>
      <p><%= post.body %></p>
    </div>
  <% end %>
<% end %>

posts_controller.rb

class PostsController < ApplicationController
  ...
  def search
    posts = Post.all
    posts = posts.offset((params[:page]&.to_i || 0) * 50).limit(50)
    render(partial: "posts", locals: { posts: posts })
  end
  ...
end

提前致谢!

html ruby-on-rails ruby turbolinks hotwire-rails
1个回答
0
投票

我想通了。问题是我正在使用 Feather Icons Library,并且该库要求使用 Javascript 将图标放置在视图中。由于 Javascript 在视图渲染后需要几毫秒的时间,因此图标才会加载,从而稍微改变视图的布局。再次感谢您的有用建议!

© www.soinside.com 2019 - 2024. All rights reserved.