meteorlxy / vssue

:mailbox: A Vue-powered Issue-based Comment Plugin
https://vssue.js.org
MIT License
773 stars 106 forks source link

issue 重复创建 #12

Closed zhhlwd closed 5 years ago

zhhlwd commented 5 years ago

2019-02-18_060457 2019-02-18_060538

地址

好像是页面刷新一次就创建一次,我正在开发vuepress的主题 2019-02-18_061655 2019-02-18_061732

究竟是什么问题?

meteorlxy commented 5 years ago

提供一下Vssue的版本,另外如果在用Vuepress 1.x的话也可能会有各种奇怪的问题。方便的话最好建一个demo仓库帮你看一下。

这个问题我之前遇到过类似的,但是是某种情况下会创建2次,和设置Vuepress页面的key有关。

可以在博文页面,大概是post组件上面,加一个:key="$page.title"试一下

zhhlwd commented 5 years ago

谢谢你的帮助,按照你的提示,我已经解决问题了

meteorlxy commented 5 years ago

之前 Vssue 监听传入的 title, issueId, options,如果有变化就会重新初始化。

如果没有设置 key,可能导致前一个页面的 Vssue 还没有销毁就监听到了 $page.title 的变化,试图创建新的 Issue。然后后一个页面的 Vssue 创建后,也试图创建新的 Issue。

考虑了一下,监听 props 重新初始化 Vssue 可能不是很必要的功能,准备去掉,只按照最初传入的 props 来加载评论。

kenberkeley commented 4 years ago

同样也出现了这个问题,然而却只有个别文章是如此。

https://github.com/kenberkeley/blog/issues

meteorlxy commented 4 years ago

@kenberkeley 看起来和这个不像是同一个问题。目前是只有一篇文章如此,还是某篇文章之后的所有文章都这样?

kenberkeley commented 4 years ago

只有其中一篇是如此。。。所以我指定 vssue-id 了😂

kenberkeley commented 4 years ago

https://github.com/kenberkeley/blog/commit/db0bc499885d71db61f0f37df93b528f47a1ccbc

meteorlxy commented 4 years ago

知道问题了……

目前用的是 Github 的搜索 API ,以 issue 标题为搜索条件,只取第一个搜索结果,看标题是否完全相等。

然而你的这篇文章标题,搜出来的结果是第二个。估计是因为“电面篇”多命中了一个“面”字,搜索权重被 Github 提高了…

image

meteorlxy commented 4 years ago

为了提高容错率可以不只取第一个,多取几个,但是感觉不是个彻底的解决办法

image

meteorlxy commented 4 years ago

还有个办法就是加引号,我试一下 image

kenberkeley commented 4 years ago

那暂时还是。。。指定 ID 吧。。。