Reactjs在其他组件之前呈现组件
Reactjs render component before other components
我如何指定一个组件应该绝对在任何其他组件之前呈现?
我想指定<Footer />
和footer的所有子组件应该在任何其他组件之前呈现。我想要这样做的原因是因为我的代码取决于页脚渲染的html,这意味着对<Footer />
的引用是undefined
在其他组件中,如果<Footer />
不首先渲染。
下面是一个例子:
export default class Layout extends React.Component {
...
render(){
return (
<Body />
<Footer /> //Render first
);
}
}
我认为你这样做的唯一方法是:
- 在状态中提供关于页脚呈现状态的信息。(让我们假设你的名字是
isFooterRendered
,它是一个布尔值) - 初始状态下设置
isFooterRendered
为false
- 当
isFooterRendered
是true
时,你只渲染子组件 - 在
componentDidMount
中,您将有一个对页脚的引用,将isFooterRendered
设置为true。
(有些人声称componentDidMount
上的setState
不好,但在你的情况下看起来像一个合法的用例,除了React Docs暴露了一个类似的例子)
相关文章:
- 使用react.js渲染其他组件内部的组件
- 如何忽略node.js中其他文件或组件所需的文件
- 将事件绑定到其他UI组件's函数,在Kendo MVVM中
- 如何根据其他组件中的事件更新组件URL
- 如何使用其他文件中的react组件
- Aurelia组件在其他视图模型中使用时不共享实例
- 如何绑定'这'到react类之外的函数,后者是来自其他组件的回调
- Angular 2 ES6/7事件发射器更新其他组件
- 如何防止其他元素在拖动任何devexpress组件时高亮显示
- React 在点击时渲染其他组件.ReactJS中的最优模式
- 如何在不禁用其他脚本的情况下将 Javascript 添加到组件中
- 如何将 angularJS 指令/组件作为属性传递给其他指令/组件
- 如何在应用程序模板中先加载 Ember 组件,然后再加载其他所有内容
- EXTJS 6.x到4.x以图形或其他方式查看组件的分层
- HTML图像&其他组件根据页面宽度调整大小
- 为什么Angular UI引导使用提供程序来处理模态和工具提示中的逻辑,而不在其他组件中
- 如何在ember js中以编程方式在其他组件/视图中添加组件或视图
- 从其他组件获取参数[React JS]
- 如何使用React.js而不是JQuery.js克隆React组件(添加到其他地方)
- Angular 2的Array Subject .next()不会调用其他组件的观察者