当前位置: 首页 > 知识库问答 >
问题:

阻止所有组件呈现

鞠边浩
2023-03-14
const list = {
   components: [<ComponentOne key={1}/>, <ComponentTwo key={2}/>]
}

但是当我从ComponentOne切换到ComponentTwo,然后回到ComponentOne时,它被重新构建,我失去了在ComponentOne中已经做过的一切

是否有一种方法,当创建的组件没有呈现时,它不会丢失其所有状态?

共有1个答案

应煌
2023-03-14

我可以看到两种实现你想要的选择:

  1. 管理组件之外的状态
  2. 呈现所有组件,但只显示当前组件

列表中的所有he组件都将是无状态的(没有useState或This。state定义),他们的状态将在外部管理并作为道具传递。

const [ state, setState ] = useState()
const list = {
   components: [ComponentOne, ComponentTwo]
}
const CurrentComponent = list.components[index]

return <CurrentComponent state={state} setState={setState} />
 类似资料:
  • 我在一个表单上有一个TextField输入,问题是当我在它上键入时,刚刚键入的值的显示/呈现有一种延迟,我想防止这种延迟。 代码:

  • 问题内容: 我有一个包含三个部分的搜索页面。浏览主题组件列出了可供选择的主题。浏览文章组件基于主题ID列出所有文章,如果没有主题ID,则加载所有文章。home组件包含browsertopics和browserarticles组件,并根据所单击的主题更改其状态。 我需要的是,我希望BrowseTopics组件在父状态更改时停止重新呈现。我尝试使用shouldComponentUpdate()(返回f

  • 对于在其生命周期的某个点隐藏的组件,呈现它的最佳方式是什么?1)渲染组件,但不显示它(显示:无)。2)只在需要时渲染组件。什么对性能更好?如果组件的道具和状态稍后更新,是否最好让组件存在,但隐藏在虚拟DOM中? 或者这个:

  • 问题内容: 在渲染我的组件之前,我需要获取一些信息。该信息将由API提供,并通过ajax调用获取。 我只是想在渲染组件之前等待10秒钟,但是它说: 兑现承诺后,我可以渲染我的组件吗? 我将ES6与JSX,redux(带有react-router的通用路由器)一起使用。 非常感谢您的帮助! 问题答案: 这是我通常做的事情: 这是将要发生的事情的细分… 组件即将加载 触发componentDidMou

  • 本文向大家介绍react中怎样阻止组件渲染?相关面试题,主要包含被问及react中怎样阻止组件渲染?时的应答技巧和注意事项,需要的朋友参考一下 在极少数情况下,你可能希望能隐藏组件,即使它已经被其他组件渲染。若要完成此操作,你可以让  方法直接返回 ,而不进行任何渲染。

  • 我把我的主页通过谷歌的PageSpeed测试,它给了我69分移动和95分桌面。唯一的问题是呈现阻塞CSS。 现在,我的网站上所有的网页都在折叠上面。也就是说,任何地方都不涉及卷轴。考虑到这一点,我个人觉得我不应该做任何特别的事情,因为CSS从一开始就需要以我设计的方式查看我的页面。 如果我执行异步加载或其他操作,它最终将在预期输出之前的黑白未组织页面上显示内容。 我忽略谷歌了吗?这将意味着我永远不