reactjs - 反应渲染特定的孩子
问题描述
我已经查看了其他人与此相关的问题,但找不到合适的答案。我想将孩子传递给一个组件,然后在我想要的地方拉出特定的孩子,我见过的大多数例子只是让孩子在同一个地方渲染。
我的组件看起来像这样 -
<ParentComponent>
<ChildOne/>
<ChildTwo/>
<ParentComponent/>
当我在父组件中记录 props.children 时,我得到一个包含两个子对象作为对象的数组。有没有一种简单的方法可以在我需要它的地方取出特定的孩子,比如{props.children.ChildOne}
我现在正在使用props.children[0]
这并不理想,因为我们将来会动态地传递孩子,并且数组长度可能会改变。
一如既往,非常感谢任何帮助!
解决方案
根据您的具体情况和需求,将子组件作为道具传递可能比使用特殊children
道具更有意义。然后你可以用任何你喜欢的方式渲染它们。
<ParentComponent childOne={ChildOne} childTwo={ChildTwo} />
...
const ParentComponent = ({ childOne, childTwo }) => {
return (
<div>
{childOne}
<div>
{childTwo}
</div>
</div>
);
};
但是了解您的确切情况将有助于概念化实现这一点的最佳方式。也许您可以重构您的代码以避免传递这样的子数组。
推荐阅读
- python - 问题透视数据框
- react-native - 无法提交表单 formik 和 react-native-elements
- ios - SwiftUI:显示重复按钮且未触发操作的催化剂警报
- c# - 图片框位置不会改变
- typescript - 打字稿从用户输入创建新类型
- docker - 错误:服务“mysql”构建失败:清单列表条目中没有 linux/arm/v7 的匹配清单
- c - 如何使用指针将从 Pthread 返回的多个数组存储在另一个数组中
- raku - Cro运行抛出连接被对等方重置
- java - google-drive-api - 使用我的帐户管理员更新文件
- mysql - 连接到数据库的 Docker 错误 - 对许多其他网站使用 nginx、mysql 和虚拟主机