reactjs - 将动作从子组件提取到父组件
问题描述
我一直在尝试构建一个基于反应的应用程序,但我不知道如何解决这种情况:
假设我有一个名为“SimpleTable”的组件,顾名思义,它提供了一个简单的表格——它的道具是“标题”(数组)、“行”(数组)和“分页”(布尔)
如果分页是假的,那么我们只给出一个简单的长表 - 如果它是真的,我们将行分块到多个小表中,并提供按钮来切换上一个/下一个 - 到目前为止就这么简单。
现在到了具有挑战性的部分——有时我想在我的代码中将表格作为一个表格,有时我想将它包装在一个“卡片”元素中。我为组件引入了一个名为“asCard”(bool)的新道具,它改变了 HTML 的输出,并改变了 prev/next 按钮的放置位置。
有没有办法扭转这种情况,这样我的组件中就不会有“asCard”,而是有一个可以放入任何东西的包装器组件,它可以从子组件中“提取”动作,并将它们放在一个不同的位置 - 这样我可以拥有许多不同的组件,而不必担心每个组件上都有“asCard”。
我在想可能有一个“卡片”组件,其中有一个名为“extractAction”之类的函数,然后将其传递给子组件,然后子组件检查一个名为“handleExtractAction”的道具" 然后将动作元素传递给,而不是在自己的输出中使用它。但我不确定这是否是一种过于复杂的方法,以及是否有更明智的方法。
编辑:
我将尝试添加一个视觉示例来说明我正在谈论的内容
带分页的 SimpleTable:
< >
item 1
------
item 2
------
item 3
------
item 4
------
item 5
------
卡片内的 SimpleTable,具有基本的父>子设置:
------------------------
| card title |
------------------------
| |
| < > |
| |
| item 1 |
| ------ |
| |
| item 2 |
| ------ |
| |
| item 3 |
| ------ |
| |
| item 4 |
| ------ |
| |
| item 5 |
| ------ |
------------------------
以及我想要的结果,而不必在我创建的每个自定义组件中使用“asCard”。
------------------------
| card title < >|
------------------------
| |
| item 1 |
| ------ |
| |
| item 2 |
| ------ |
| |
| item 3 |
| ------ |
| |
| item 4 |
| ------ |
| |
| item 5 |
| ------ |
------------------------
解决方案
推荐阅读
- c# - 是否可以更改 WinFormCore DataGridViewCell 中的 cell.value
- azure-data-factory - 自动创建的表的 Azure 数据工厂复制活动自定义架构名称
- python - 使用神经网络根据体重和身高预测年龄
- reactjs - 使用 npx create-react-app my-app 时出错
- proxy - Spring Cloud Gateway - 路由代理
- php - 如何比较一个列数组和另一个?
- node.js - 在 Node JS 中使用 Fluent FFMPEG 从屏幕截图创建视频缩略图
- javascript - 如何从 Handlebars 模板中获取部分
- python - Django迁移外键与旧数据库不匹配
- .net - 使用 PowerShell 和 WinSCP .NET 程序集计算上传文件的数量