我正在尝试对我的博客实现无限滚动,我有
const articlesHTML = document.querySelector(".articles");
作为容器。每次点击装载更多按钮 我想将新文章附加到主 html 元素,如下所示:
const results = articles
.slice(0, 10 * pager)
.map((articleID, i) => (
<Article key={i} id={articleID} />
));
articlesHTML.append(results);
然而,results
是一堆<Article/>
反应组件而不是 html 节点,我错过了什么吗?
你可以使用render
from ReactDOM
将组件渲染到隐藏的 HTML 节点中,然后将该节点的内容附加到另一个节点。
但是像这样使用 React 的输出通常是bad idea。我建议在 React 中构建整个组件。
例如:
const App = () => {
const [articles, setArticles] = useState([]);
const loadMore = useCallback(() => {
setArticles(...);
}, [setArticles]);
return (
<div className="app">
{articles.map((article) => <Article key={article.uuid} ... />)}
<button onClick={loadMore}>Load more</button>
</div>
);
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)