我有一个分页组件。它可以工作,但有一个问题:它不会动态替换或更新浏览器中的 URL。即,当我更改页面时——表格中数据的第 2、3、4 页——我希望 URL 也得到更新:在浏览器 URL 栏中更新并附加到浏览器历史记录中。
my_domain.com/my/pigs?page=2&page_size=5
my_domain.com/my/pigs?page=3&page_size=5
my_domain.com/my/pigs?page=66&page_size=5
但目前只有数据会根据当前页面正确获取,而 URL 将始终保持静态 -
my_domain.com/my/pigs
@impl true
def handle_info({:update, opts}, socket) do
extra_params = merge_and_sanitize_params(socket, opts)
path = "/my/pigs"
to = path <> "?" <> URI.encode_query(extra_params)
# socket = push_patch(socket, to: to, replace: true)
socket = push_patch(socket, to: to)
{:noreply, socket}
end
我已经尝试过
replace
和 true
,没有 - 无论如何,URL 将保持“我的/猪”。
_url
中的 handle_params(..)
将包含正确的 - ?page=X&page_size=Y
是正确的:
@impl true
def handle_params(params, _url, socket) do
# _url will contain dynamic url, with the correct params
# .....
但是,浏览器中的 URL 仍将保持静态。
怎么了?