rss2json API无法实时更新,Medium文章组件不加载新内容求助
Medium文章更新后博客组件不刷新的问题排查与解决
问题分析
你遇到的情况是:通过rss2json拉取Medium feed展示文章,发了新文章后组件没更新,加了timestamp参数也没用。核心原因大概率是rss2json对Medium的RSS源做了缓存,或者Medium自身的RSS feed存在同步延迟。
排查与解决步骤
先确认Medium RSS源是否已更新
直接在浏览器打开https://medium.com/feed/@khaledb.yahya,查看源文件里有没有你的新文章。如果没有,那就是Medium的同步延迟,新发布的文章通常需要几分钟到十几分钟才会同步到RSS feed,等一段时间再试即可。强制绕过rss2json的缓存
rss2json默认会缓存RSS源内容1小时(3600秒),你加的t参数只作用于rss2json的请求本身,但它内部仍会返回缓存的Medium RSS数据。解决方法是在请求URL里添加cache=0参数,强制跳过缓存:
useEffect(() => { const username = "@khaledb.yahya"; const url = `https://api.rss2json.com/v1/api.json?rss_url=https://medium.com/feed/${username}&cache=0`; axios .get(url) .then((response) => { const posts = response.data.items; setPosts(posts); console.log(posts); }) .catch((error) => { console.error(error); }); }, [username]);
- 验证组件渲染逻辑
如果rss2json的响应已经包含新文章,但组件没更新,需要检查:
- 渲染文章列表时,是否给每个item设置了唯一的
key(比如用文章的guid或pubDate+title组合),避免React复用旧DOM节点。 - 用React DevTools查看
posts状态是否确实更新,确认setPosts执行后状态变化正常。
测试小技巧
如果只是验证组件渲染新文章的能力,没必要真的发布新文章——可以临时在本地修改posts的模拟数据,或者手动构造包含新文章的响应来测试组件逻辑。
内容的提问来源于stack exchange,提问作者Khaled Ben yahya
相关产品推荐
相关产品推荐

