我已经使用JQuery创建了一个spa。SPA是通过编写一个自定义路由器来完成的,我们将可见类名添加到页面div以使该页面可见,并使用jquery从所有其他页面中删除相同的类名,
$(".main-content .page").removeClass("visible");
const page = $(`#${pageId}`);
page.addClass("visible");现在,我正在迁移这个站点,以便在整个网站中到处使用react组件。我在其中一个页面上有一个组件,它根据URL中的id显示产品数据,但问题是,即使我更改URL,它也不会重新呈现。它无法检测到更改,因为状态或道具没有更改。
有没有办法从我的其他JS代码中强制重新呈现这个组件?
发布于 2021-09-28 18:02:32
解决方案非常简单,但在任何地方都没有提到。
官方指南说在文件的末尾使用下面的代码,这样当我们的js文件被浏览器加载并运行时,它将呈现我们的react代码,但问题是我们可以从任何地方调用这个方法来强制重新呈现我们的组件/用新的实例替换我们的组件。
为了强制重新渲染它,调用下面的方法将react代码添加到div中。
ReactDOM.render(<ProductDetails />, document.getElementById("product-details"));使用这个,我们甚至可以传递新的道具,如果我们想的话。
https://stackoverflow.com/questions/69366495
复制相似问题