如何使用React JS删除UI组件
How to remove UI components using React JS
我很难找到有关如何在使用react时删除UI组件的相关文档。例如,有一个登录表单。用户单击提交,现在该表单应该从屏幕上删除。我该怎么做?
我已经找到了unmountComponentAtNode,但它只能在父级调用。我是否应该有一个知道所有子状态并有条件加载它们的父节点?所有子项都应该具有"isHidden"属性吗?如果为true,则该属性会将dom渲染为隐藏?
这一定是基本的,但我在react js教程中没有看到。我发现了这个stackoverflow帖子(react.js:删除组件),这真的是模式吗?这有点道理,但这意味着大型应用程序可能会有一个极其复杂的应用程序父类,该类根据配置管理应用程序状态的映射。
似乎我需要开始将应用程序状态定义为命名映射。例如:
BaseApp: showHeader=true;showContent=true;
LoginState: showBaseApp=true;showLoginForm=true;
LoggedInState: showBaseApp=true;showFeed=true;
在任何时候,我们都必须更新所有状态映射并调用基类渲染方法。。。
在我看来,您的问题不是删除组件,而是显示正确的组件。是的,它可以用组件状态来完成,但也可以用Flux/Redux存储/还原器来完成。
在您的登录表单示例中,单击"提交"后,我们可以更改组件的本地状态,并显示另一个文本,如"请求已发送"或其他组件。
但您可以通过将组件的本地状态提取到存储区/还原器中来实现这一点,它在相对较大的应用程序中会更好地工作。尽管如此,存储状态的位置实际上取决于您自己。
我喜欢使用这样的隐藏道具。
class AppCtrlRender extends React.Component {
render() {
let page = this.state.appState.currentPage;
let hideAbout = (page != 'about');
let hideHome = (page != 'home');
return (
<div id='AppCtrlSty' style={AppCtrlSty}>
<div id='allPageSty' style={allPageSty}>
<AboutPage hide={hideAbout} />
<HomePage hide={hideHome} />
</div>
</div>
);
}
}
export default class AboutPage extends React.Component {
render() {
if (this.props.hide) return null;
let aTime = (new Cache()).time.toString();
return (
<div style={AboutPageSty}>
React 0.14 ReFlux used for app state. This is the About Page.
<NavMenu /><br/><br/>
{aTime}
</div>
);
}
}
相关文章:
- 是否有任何JavaScript UI组件可以显示字符串之间的差异
- OnsenUI、Angular和在警报对话框后刷新UI组件
- 一些sencha/enyo风格功能的主干兼容UI/组件库
- 如何重新绘制Jquery中的所有UI组件
- react如何与修改html的javascript ui组件协同工作
- 将事件绑定到其他UI组件's函数,在Kendo MVVM中
- 正在将材质UI组件收集到一个文件中
- 在页面出口的PrimeFaces中检测客户端对UI组件的更改
- Windows 8 Metro UI HTML 应用中的自定义可重用 UI 组件
- 如何在反应材料 ui 组件中调用方法
- React Native Android 原生 UI 组件中的自定义事件
- 如何扩展材料 UI 组件
- 加载时未显示 JQuery-ui 组件
- 反弹完成ui组件的百分比
- 如何使用React JS删除UI组件
- UI组件和小部件的测试驱动开发
- 我如何让我的自定义UI组件与我的自定义Wordpress主题正确工作
- 自定义React Native UI组件:不变量冲突
- ADF Web应用程序:如何在页面加载时添加和修改UI组件(在页面显示之前)
- React Router Link中触发链接的Material-UI组件