在登录页面中,我有一个Google reCAPTCHA。它可以按预期工作,但是如果我导航到另一个页面,然后通过浏览器的后退按钮返回,或者通过在浏览器中键入URL返回,则除了reCAPTCHA之外,其他所有功能都可以正常工作。为了使其再次起作用,我需要重新加载页面。将Materialize与Vue结合使用时,我得到相同的结果。返回页面后,这些组件不会“重置”。
试图使用keep-alive
(即使听起来很错误),尝试了各种Vue生命周期挂钩(created
,beforeMount
,mounted
),并尝试将代码保留在然后在生命周期挂钩中调用的函数。似乎没有任何作用。我搜索了Google甚至在这里,但是也许找不到正确的解决方案。
有人可以阐明这个问题吗?如果需要,我可以尝试提供代码。
答案 0 :(得分:0)
在没有复制品的情况下,很难给出100%肯定的答案,但这可能会起作用:
尝试将key
参数添加到router-view
:
<router-view :key="$route.path" />
甚至在您要重新渲染的组件上:
<component-with-recaptcha :key="$route.fullPath"></component-with-recaptcha>