带点符号的多重导出

2023-12-22

我有这个代码:

侧边栏.jsx

class Sidebar extends Component {
    render() {
    return (
        <div className="sidebar">
          { this.props.children }
        </div>
    );
  }
}


class Item extends Component {
  render() {
    return (
        <div>
            <b> { this.props.name } </b>
        </div>
    );
  }
}

export { Sidebar, Item };

index.js

export {default as Header} from './Header';
export {default as Footer} from './Footer';
export {default as Sidebar, Item} from './Sidebar';

app.jsx

import { Sidebar } from '../components';
class App extends Component {
  render() {

    return (
      <div>
          <Header/>
          <Sidebar>
              <Sidebar.Item name='item1' />
              <Sidebar.Item name='item2' />
              <Sidebar.Item name='item3' />
          </Sidebar>
          <Footer/>
// ...

我得到的错误是:

类型错误:无法读取未定义的属性“Item”

我如何可以在多个导出组件index.js并从另一个文件调用?我确信页眉和页脚可以正常工作,因为该文件中只有一个类。


function Sidebar(props) {
    return (
        <div className="sidebar">
          { props.children }
        </div>
    );
}


function Item (props) {
    return (
        <div>
            <b> { this.props.name } </b>
        </div>
    );
}

Sidebar.Item = {Item}

export default Sidebar

然后你可以像这样使用它

import Sidebar from './Sidebar.js'

...

return (
    <Sidebar>
        <Sidebar.Item />
    </Sidebar>
)

如果您使用基于类的组件,则可以删除花括号

class Sidebar extends Component {
   render() {
       return (
           <div className="sidebar">
               {this.props.children}
           </div>
       );
   }
}


class SidebarItem extends Component {
    render() {
        return (
            <div>
                <b> {props.name} </b>
            </div>
    );
}

Sidebar.Item = SidebarItem;

export default Sidebar;

我从一位同事那里学到了这种做法,他在语义 UI 的表中看到了它here. https://github.com/Semantic-Org/Semantic-UI-React/blob/master/src/collections/Table/Table.js

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

带点符号的多重导出 的相关文章

随机推荐

  • TCP 连接的可靠性如何?

    我已经编写了服务器 客户端应用程序 服务器是用c 编写的 客户端代码是使用java编写的 通信协议是TCP 使用 tcp 传输文件时 可能会发送丢失的数据 换句话说 tcp 是否保证数据正确到达 我是否应该发送该文件的标头信息以检查错误 例
  • Django:如何对更新视图/表单进行单元测试

    我正在尝试对我的更新表单和视图进行单元测试 我使用 Django Crispy Forms 来创建和更新表单 UpdateForm 继承了 CreateForm 并对提交按钮文本做了一些小改动 CreateView 和UpdateView
  • PHP:启动 PayPal 结帐的简单方法?

    我有功能齐全的购物车解决方案 我想要的只是我实际传递产品名称 总数 退货地址和我的贝宝地址的代码 以便它可以将我引导到购物车 有人能引导我走向正确的方向吗 PayPal 有上百万个不同的版本 我了解到我需要的是 paypal 网站付款 有人
  • TCP流回放工具

    我正在寻找一种用于记录和重放 TCP 流一侧以进行测试的工具 我看到记录整个 TCP 流 服务器和客户端 用于测试防火墙等的工具 但我正在寻找的是一种工具 它仅记录客户端提交的流量 带有计时信息 然后重新提交到服务器进行测试 由于 TCP
  • Django - Crispy Forms - 自定义输入定位和内联单选按钮

    我不久前一直在使用 django crispy forms 并我想知道是否有一种方法可以设置输入的位置 例如col md XX类或其他东西 使其看起来更好 而不仅仅是字段列表 这是一个例子 This is a normal render o
  • Neo4j 浏览器无法在 Google Chrome 中运行

    在 MacOS Yosemite 10 10 3 中升级到最新的 XCode Command Tools 后 无法使用 Chrome 版本 42 0 2311 90 64 位 作为 neo4j 浏览器客户端 不过 Safari 运行良好 有
  • 高效的纯文本模板引擎

    我有一个简单的警报系统 可以抓取网络上的号码 将它们与预定义的文本模板混合以获取警报 并将其发送给客户 警报是非常简单的纯文本 所以除了纯文本 数字 简单函数 例如 ifthenelse 之外 我不会期望太多 越快越好 那么有没有现成的开源
  • 使用 realloc 调整缓冲区大小

    如果指向的区域被移动 则会出现 free ptr 已完成 您能解释一下上面的内容吗realloc 此行来自 calloc malloc realloc 和 free 的手册页 我认为这更好地解释了这一点 如果没有足够的空间 扩展当前块 当前
  • 暂停NS操作

    I have NSOperationQueue和一些NSOperations in it NSInvocationOperations 尤其 此操作会进行一些计算并相应地更改 UI 元素的状态 当然 通过performSelectorOnM
  • 如何在我的用户名中使用带有 @ 符号的 linux 命令行 ftp? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我的用户名有一个时 如何在 Linux 命令行上运行它 中间签个字 ftp u user password host destinati
  • 这个生产者-消费者实现中是否存在竞争条件?

    在 操作系统概念 Silberschatz 第 9 版 的 3 4 1 节中 作者提出了生产者 消费者问题 并给出了以下使用循环缓冲区的实现 第 125 126 页 Shared variables define BUFFER SIZE 1
  • Rails 4从数据库填充下拉值

    我有一个 Rails 形式的下拉菜单 这工作正常 但我怎样才能使它动态 与模型数据交互 我有一个控制器 其操作包含 list List all 我怎样才能填充id and name in my combobox 我一直在四处寻找 但我不清楚
  • 从 PHP 匿名函数访问变量

    我有以下带有静态变量的类 如何从匿名 PHP 函数中访问类的静态函数 class MyClass public static function MyFunction mylocalparam MyStaticClass MyStaticMe
  • 如何修复“java.sql.SQLSyntaxErrorException:'字段列表'中的未知列'product0_.return_policy'”异常?

    当我尝试在浏览器上运行 URL 时 我收到此 SQLSyntaxErrorException 字段列表 中的未知列 product0 return policy GET一切products 看这里 https i stack imgur c
  • 反应按钮的 onClick 属性:

    1 和 2 有什么区别React onClick gt handleDelete id 1 onClick handleDelete id 2 为什么 2 会导致无限循环 而 1 却工作得很好 我找不到任何关于 React 中 onClic
  • 在 GlassFish 中将 JSF 输入提交值的请求字符编码设置为 UTF-8

    我的所有值中插入的值都有问题
  • ICS 上区分平板电脑和智能手机

    据我所知 默认情况下 ICS 之前 为了区分平板电脑和智能手机 开发人员可以使用 Android 清单中的 sdk 版本 除了屏幕尺寸和 openGL 过滤器 现在 随着 ICS 在 SP 和平板电脑上运行 如果我需要区分 SP 和平板电脑
  • 在 Kotlin 中,这个 get() 做了什么

    我对 Kotlin 很陌生 想知道get login email txt toString do 是否设定email String get and set value 字段后面表示自定义 getter 和 或 setter 的声明 这是使用
  • 安装 Ruby gems 时的开发人员工具问题

    我正在尝试将 puma 安装到我的 MacOS 10 13 6 上 要安装 puma 我运行命令gem install puma但它回来了 Building native extensions This could take a while
  • 带点符号的多重导出

    我有这个代码 侧边栏 jsx class Sidebar extends Component render return div this props children div class Item extends Component re