React同vue一样都是组件化的,React更加的复杂多变,当我们需要改变页面中的内容时不仅仅要在直接关联的布局页面进行修改,步骤大致如下:在当前直接布局页面中增加布局组件函数,比如:
renderRightView() {//TODO RV++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ return (<div style={{ position: "relative" }}> <div> <button onClick={() => this.setState(prevState => ({ isBoxVisible: !prevState.isBoxVisible })) }> 弹 出 </button> <div style={{ position: "absolute", top: 0, left: this.state.isBoxVisible ? -200 : 0, // 初始位置在左边边缘 width: "200px", height: "100%", zIndex: 1000, backgroundColor: "lightblue", opacity: this.state.isBoxVisible ? 1 : 0, // 控制透明度 transition: "left 0.3s ease-in-out, opacity 0.1s ease-in-out", // 添加平滑过渡效果 boxShadow: "0 0 10px rgba(0, 0, 0, 0.5)", pointerEvents: this.state.isBoxVisible ? "auto" : "none" // 当盒子透明时禁用点击事件 }}> 我是弹出的盒子 </div> </div> </div> ); }
,这个函数return返回一个页面之后,在当前组件页面的render返回的React元素中的
<AppLayout>中进行配置组件,定义组件名,并将组件函数作为组件名的属性,比如:
rightView={this.renderRightView()}
这里的rightView需要在总布局文件中的render进行定义,定义之后,需要在return区域块进行布局,将所定义好的组件放到我们需要放到的位置上面,比如:
<!-- 上文布局略-->
<div style={{width: 'auto', height: '100%',background:"red", top: '0px', left: '0px'}}>{/*右部导航栏整体最父级容器*/} <div>{/*子集导航栏*/} {rightView} </div> </div>
<!-- 下文布局略-->
这样页面内才会显示我们在直接关联的页面所增加的代码块内容,
标签:rightView,return,布局,ts,React,Electron,组件,页面 From: https://www.cnblogs.com/zjDm/p/18344066