如何在reactjs中将可选元素作为 prop 传递给组件

2024-04-27

我试图找出正确的“反应”方式来传递一个可选的 prop,该 prop 是一个容器组件的 Element,该组件的处理方式与该组件的子组件不同。

举一个简单的例子,我有一个面板组件,它渲染它的子组件,它还有一个可选的“title”道具(为了示例,它是一个元素而不是字符串),它被专门渲染(放入一个特殊的点,在保持抽象的同时具有特殊的行为。

一种选择是从子组件中取出一个组件并专门渲染:

<Panel>
   <Title> some stuff</Title>
   <div> some other stuff</div>
</Panel>

但像这样把孩子们拉出来单独处理似乎很奇怪。

这通常是如何在反应中处理的,我是否以正确的方式思考这个问题


你不需要做任何特别的事情。只需将 title 组件作为 prop 传递,然后使用{this.props.title}无论您希望它呈现在哪里:

class Panel extends React.Component {
  render() {
    return <div>
      {this.props.title}
      <div>Some other stuff...</div>
    </div>;
  }
}

class App extends React.Component {
  render() {
    var title = <Title>My Title</Title>;
    return <Panel title={title}/>;
  }
}

如果您没有传递任何值titleprop(或者如果该值为false, null, or undefined)那么那里将不会呈现任何内容。

这是 React 中相当常见的模式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在reactjs中将可选元素作为 prop 传递给组件 的相关文章

随机推荐

  • 如何在Python中访问超类的类属性?

    看一下下面的代码 class A object defaults a 1 def getattr self name print A getattr return self get default name classmethod def
  • 在 Python 中使用 glob.glob 和带有 unicode 文件名的正则表达式的独立于文件系统的方式

    我正在开发一个库 我想保持平台 文件系统和 Python2 x 3 x 的独立性 但是 我不知道如何以独立于平台 文件系统的方式全局查找文件并将文件名与正则表达式进行匹配 例如 在 Mac 上 使用 IPython Python 2 7 I
  • 在 Node.js / Express 中,如何“下载”页面并获取其 HTML?

    在代码中 我想下载 http www google com 并将其存储在字符串中 我知道如何在 python 的 urllib 中做到这一点 但是如何在 Node JS Express 中做到这一点呢 var util require ut
  • 如何解析这个 OFX 文件?

    这是原始 ofx 文件 因为它来自 m 银行 不用担心 没有什么敏感信息 我剪掉了所有交易的中间部分 开放金融交易所 OFX 是一个 用于交换的数据流格式 演变的财务信息 来自微软的开放金融 连接 OFC 和 Intuit 的 Open 交
  • 将源附加到 kotlin 库项目不会显示在 AS 中

    我想将源代码附加到 kotlin 库项目 看起来我成功了 因为我现在在这里有源 jar https jitpack io com github walleth kethereum bip44 0 21 https jitpack io co
  • Typescript:使用 Lambda 函数从两个数组中查找公共对象

    我正在使用 Typescript 来解决以下问题 我想搜索列表中的对象 而不是简单的字母或数字 下面是两个数组 我想在单独的列表中获取常见的对象不使用任何第三方库 firstArray id 4 name Tata id 11 name M
  • BlazorWebView 内的 .NET MAUI Xaml

    我正在完全使用 Blazor 构建我的应用程序 一切都发生在我的 BlazorWebView 内 是否可以使用类似的东西RefreshView在 razor 文件中 我知道我可以实例化一个ContentView从代码后面但是我可以将其实现到
  • Django 属性简短描述

    有谁知道如何将自定义名称添加到 Django 模型中的属性吗 例如 如果我有财产 property def my property self return u Returns some calculations 我在管理中将其显示为一列 c
  • 当传递 VBA 类的实时实例时,C# ITypeInfo.GetContainingTypeLib 失败

    所以我尝试过打电话ITypeInfo在 VBA 类实例上 虽然它看起来很有希望 但我想看看是否可以获得对其包含项目 类似于类型库 的引用 我想ITypeInfo GetContainingTypeLib可能有用 但它会抛出一个异常 表明 V
  • 构建jquery复选框-无法设置选中值

    这看起来很简单 我不知道这是一个错误 还是我做错了什么 我想要做的是在 jquery 中构建一个复选框输入 然后返回输入的字符串 我有这个代码 var obj
  • 无法使 npm install -g 适用于我的包

    我正在尝试将 CLI 功能添加到我的 npm 包拦截代理中 我找不到任何好的文档 所以我基本上从express js 复制和修改了内容 I added bin intercept proxy bin intercept proxy 我的 p
  • 如何在magento中将订单状态设置为“完成”

    如何手动将订单状态设置为 完成 我正在使用以下代码 但它给出错误消息 订单状态 完成 不得手动设置 order Mage getModel sales order gt loadByIncrementId order id order gt
  • 如何在 JSF 中使用 EL 内的 HTML 字符实体?

    我想使用em dash http en wikipedia org wiki Dash在一个值属性中h link成分 这是我的尝试 目前不起作用
  • bash 脚本中带有 PKCS#12 证书的 cURL

    我必须连接到网络服务 其中必须有 pkcs12 证书 这个想法是在 bash 脚本中使用curl 具体来说 在 OS X 下 我了解到 curl 在通信中无法做的少数事情之一是处理 pkcs12 证书 p12 我有什么选择 我读过将证书转换
  • Typescript:映射联合类型时的类型级数学

    是否可以使用类型级数学来映射打字稿中的联合类型以生成作为第一个联合的函数的新联合 例如 我想使用现有的联合类型 type foo 768 1024 1280 为了产生这个并集 每个选项除以 16 type bar 48 64 80 如果工会
  • 编译资产时“堆栈级别太深”

    运行后brew upgrade 或者其他更新了我的 gems ruby 版本的东西 我的rake assets precompile任务不再有效 我收到此错误 rake aborted stack level too deep in Use
  • 梯度下降Matlab实现

    我已经浏览了堆栈溢出中的许多代码 并在同一行上编写了自己的代码 这段代码有一些问题我无法理解 我正在存储值 theta1 和 theta 2 以及用于分析目的的成本函数 x 和 Y 的数据可以从此下载页 它具有 dat 文件形式的 x 和
  • Rails 3 具有 12 小时格式的时间选择表单助手?

    Rails 3 有用户友好的 time select 吗 默认的 time select 表单助手为您提供小时 00 23 分钟 00 59 和可选的秒 00 59 对于我们这些非军事时间的人来说 0 23 小时的下拉列表非常令人沮丧 用户
  • System.Design 去哪儿了?

    我正在制作一个使用 ScintillaNet 的 C 项目 它显示 无法解析引用的程序集 ScintillaNet 因为它依赖于 System Design Version 4 0 0 0 Culture neutral PublicKey
  • 如何在reactjs中将可选元素作为 prop 传递给组件

    我试图找出正确的 反应 方式来传递一个可选的 prop 该 prop 是一个容器组件的 Element 该组件的处理方式与该组件的子组件不同 举一个简单的例子 我有一个面板组件 它渲染它的子组件 它还有一个可选的 title 道具 为了示例