javascript - 使用 React 从另一个组件添加到组件
问题描述
我有一个footer
我在其中创建的App.js
,现在我有另一个名为的组件KokPlayer.js
,我想将按钮添加KokPlayer.js
到footer
in 中App.js
。
我怎样才能做到这一点?
应用程序.js
render() {
const { expanded } = this.state;
return (
<React.Fragment>
<nav
className="footer navbar navbar-light bg-success mb-auto"
ref="footerRef"
/>
</React.Fragment>
);
}
KokPlayer.js
render() {
// Add this block to footer
return (
<div
style={{ display: "block", margin: "0 auto", verticalAlign: "middle" }}
>
<Button onClick={this.play} className="mr-3">
play()
</Button>
<Button onClick={this.pause} className="mr-3">
pause()
</Button>
<Button onClick={this.toggleFullScreen} className="mr-3">
FullScreen()
</Button>
</div>
);
}
解决方案
据我了解您在评论中写的内容,您可以将道具传递给 KokPlayer 组件,然后您可以隐藏您不想在 App.js 中显示的元素
在App.js中
import KokPlayer from './KokPlayer' // KokPlayer location
……
render() {
const { expanded } = this.state;
return (
<React.Fragment>
<nav
className="footer navbar navbar-light bg-success mb-auto"
ref="footerRef"
/>
<KokPlayer showButtonsOnly={true} /> // the buttons here
</React.Fragment>
);
}
KokPlayer.js
render() {
// Add this block to footer
return (
<div>
{!this.props.showButtonsOnly && <div> // it wouldn't be shown in App.js
Screen Here
</div>}
<div style={{ display: "block", margin: "0 auto", verticalAlign: "middle" }}
>
<Button onClick={this.play} className="mr-3">
play()
</Button>
<Button onClick={this.pause} className="mr-3">
pause()
</Button>
<Button onClick={this.toggleFullScreen} className="mr-3">
FullScreen()
</Button>
</div>
</div>
);
}
推荐阅读
- c# - 如何为 sitefinity 相关数据创建自定义选择器?
- redis - 如何在redis中按键模式搜索值
- c# - 如何在 Identity Core 中禁用外部登录?
- excel - Breaklinks in PowerPoint running but not working
- java - 使用文件或 S3 路径
- php - Prod 上的 Composer 安装问题,本地环境没有问题
- x86 - 英特尔处理器的 TLB ASID 标签中有多少位?以及如何处理“ASID 溢出”?
- django - 排除特定 HTTP 方法的 swagger 文档
- angular - Angular提供者和providedIn导致循环依赖
- javascript - 使用使用 inboxsdk 创建的自定义按钮发送邮件?