你可以为 React 组件使用 es6 导入别名语法吗?

2024-03-31

我正在尝试执行类似以下操作,但它返回 null:

import { Button as styledButton } from 'component-library'

然后尝试将其呈现为:

import React, { PropTypes } from "react";
import cx from 'classNames';

import { Button as styledButton } from 'component-library';

export default class Button extends React.Component {
    constructor(props){
        super(props)
    }
    render() {
        return (
                <styledButton {...this.props}></styledButton>
        )
    }
}

原因是,我需要导入Button从库中导出组件,并导出具有相同名称的包装组件,但保留导入组件的功能。如果我把它留在import { Button } from component library当然,我会得到一个多重声明错误。

有任何想法吗?


你的语法是有效的。 JSX 是 React.createElement(type) 的语法糖,因此只要 type 是有效的 React 类型,它就可以在 JSX“标签”中使用。如果 Button 为 null,则您的导入不正确。也许 Button 是组件库的默认导出。尝试:

import {default as StyledButton} from "component-library";

另一种可能性是您的库正在使用 commonjs 导出,即module.exports = foo。在这种情况下,您可以像这样导入:

import * as componentLibrary from "component-library";

Update

由于这是一个受欢迎的答案,这里还有一些花絮:

export default Button              -> import Button from './button'
                                      const Button = require('./button').default
         
export const Button                -> import { Button } from './button'
                                      const { Button } = require('./button')
         
export { Button }                  -> import { Button } from './button'
                                      const { Button } = require('./button')
         
module.exports.Button              -> import { Button } from './button'
                                      const { Button } = require('./button')

module.exports.Button = Button     -> import { Button } from './button'
                                      const { Button } = require('./button')

module.exports = Button            -> import * as Button from './button'
                                      const Button = require('./button')

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

你可以为 React 组件使用 es6 导入别名语法吗? 的相关文章

  • 如何更改传单中功能集的样式?

    我正在看等值区域的例子 https leafletjs com examples choropleth https leafletjs com examples choropleth 这是他们使用的数据源 type Feature prop
  • 动态速度计 javascript 或 jquery 插件

    我希望有动态ajax插件在页面上显示速度计 一个想法是我设置一个背景并旋转针 有人知道相关插件吗 这里有一些供您参考 http bernii github com gauge js http bernii github com gauge
  • 非 DOM 对象上的 jQuery 自定义事件

    我最近阅读了一些代码 其功能如下 bob name Bob Smith rank 7 bob bind nameChanged function bob trigger nameChanged 这似乎有效 但我在 jQuery 文档或源代码
  • 在Javascript中按降序对字符串进行排序(最有效)?

    W3Schools 有这个例子 var fruits Banana Orange Apple Mango fruits sort fruits reverse 这是在 Javascript 中按降序对字符串进行排序的最有效方法吗 Updat
  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe
  • 如何使用 jest 模拟第三方库

    我正在开发一个node js应用程序使用nestjs我有一堂课叫LoggerService如下 export class LoggerService private logger Rollbar constructor this logge
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • React Native:加载图像后应用程序性能不佳

    加载图像似乎没有问题 但是加载完毕后就出现问题了 在我的应用程序中 我在整个游戏中一张一张地加载卡片图像 一旦我加载了 40 张卡片图像 整个应用程序就会变得很慢 它总是发生在第 40 个图像处 当我在第 40 个图像之后继续加载更多卡片图
  • 如何在React中的Material-UI选择框中设置默认值?

    我在用选择框 https material ui com demos selects 来自材料用户界面 我想显示默认选择的 选择值 选项 但之后用户无法选择此选项
  • Javascript - 将值从下拉框传递到 Google Maps API

    我正在使用 Google 地图 API 为一家出租车公司创建报价表 目前 用户在 2 个文本框中输入出发点和接载点 API 会计算两点之间的距离以及行程费用 我正在尝试添加两个具有设定位置的下拉框 以便用户可以选择这些位置之一或使用文本框输
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • Chartjs刻度标签位置

    尝试让 Y 轴刻度标签看起来像image https i stack imgur com XgoxX png 位于秤顶部且不旋转 缩放选项当前如下所示 scales yAxes id temp scaleLabel display true
  • 为什么“tbody”不设置表格的背景颜色?

    我在用 tbody 作为 CSS 选择器来设置background color在一个表中 我这样做是因为我有多个 tbody 表内的部分 它们具有不同的背景颜色 我的问题是 当使用border radius在细胞上 细胞不尊重backgro
  • 使用 Flask/WTForms 和 React 进行 CSRF 保护

    有没有人成功地为使用 React 作为受控组件 提交到 Flask 后端 最好使用 WTForms 的表单实现了 CSRF 保护 我看过很多部分答案 其中一个是关于 Django 的 但找不到任何关于 Flask 的明确答案 我的大问题似乎
  • 需要有关 React Js 的帮助

    我是 React Js 新手 我的代码无法正常工作 请看下面 这是我的脚本文件Main jsx 该文件由 React 编译 输出放置在 dist 文件夹下的 main js 文件中 var react require react react
  • 如何在打字稿文件中导入没有定义文件的js库

    随着我们的项目变得越来越大 我想从 JavaScript 切换到 TypeScript 以帮助进行代码管理 然而 我们使用许多库作为 amd 模块 我们不想将其转换为 TypeScript 我们仍然想将它们导入 TypeScript 文件
  • 如何在 gulp.src 中使用基本正则表达式?

    我正在尝试选择两个文件gulp src highcharts js and highcharts src js 当然 我知道我可以使用数组表达式显式添加这两个表达式 但出于学习目的 我尝试为它们编写一个表达式 我读过可以使用简单的正则表达式
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没
  • 在 GWT 中,在任何主机页标记上添加事件处理程序

    我想为任何标签添加 MouseOver 事件处理程序 举个例子 我想为旧版 HTML 页面中的每个锚点页面添加事件处理程序 继GWT指南 http code google com webtoolkit doc 1 6 DevGuideUse

随机推荐

  • 在C中读/写结构到fifo

    我正在尝试使用命名管道在进程之间传递结构 我在尝试打开管道非阻塞模式时陷入困境 这是我写入 fifo 的代码 void writeUpdate Create fifo for writing updates strcpy fifo writ
  • C++ 协方差何时是最佳解决方案?

    这个问题 https stackoverflow com questions 1259272 is there a way to forward declare covariance几个小时前被问到这里 让我意识到 我从未在自己的代码中实际
  • 在共享主机上从 HTML 页面生成 PDF 文件

    我在主机上启用扩展等的权限非常有限 但我希望通过 PHP 从 HTML 页面 带有 css 图像 生成 PDF 我有什么想法可以通过近乎零的 CL 访问等来实现这一点吗 最好不是 黑客 依赖服务 因为我将寻求长期使用 生成要呈现到 PDF
  • StrictMode DiskReadViolation 时

    我正在尝试使用 SharedPreferences 来存储我的应用程序的一些用户设置 我的 Activity onCreate 方法中有以下代码 sharedPreferences context getSharedPreferences
  • 将元素附加到二进制文件

    我的目标是 开一个binary文件 将每 100 个值存储 追加 到该文件中 并继续这样做直到完成 为此 我使用以下简单循环来模拟 import numpy as np import random alist c 1 for i in ra
  • Android 以编程方式加载字符串数组

    我有一堂课叫StringsA其中有一个字符串数组 public class StringsA static String Names Larry Moe Curly John 在我的主课上有一个Button and a TextView 我
  • PHP 字符串中不定冠词 (a, an) 的正确形式

    有没有一种简单的方法可以替换字符串中的 a an 以与后面的单词一致 与日期格式中 S 的工作方式非常相似 e g apple apple pear pear echo This is a apple this is a pear gt T
  • 如何在 SQL Server 中将 bigint(UNIX 时间戳)转换为日期时间?

    如何在 SQL Server 中将 UNIX 时间戳 bigint 转换为 DateTime 这对我有用 Select dateadd S unixtime 1970 01 01 From Table 万一有人想知道为什么 1970 01
  • Jenkins - 在主站和从站中运行一项工作

    我设置了一个主站 Linux 和一个Windows从站 并且想在主站和从站上构建一个作业 限制该项目可以运行的位置 选项允许我们将作业绑定到特定的从属设备 但是是否可以将一个作业绑定到主设备和从设备 如何配置 构建步骤 因为在 Window
  • DataGrid SelectionChanged MVVM [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我刚刚开始使用 WPF 和 MVVM 框架 我有一个带有两个 DataGrid 的窗口 我想根据另一个 DataGrid 的行选择在一
  • Java死锁问题

    谁能解释一下为什么这段代码出现死锁 谢谢 public class Deadlock static class Friend private final String name public Friend String name this
  • 如何让gridview中的linkbutton控件打开一个新的ie窗口

    我需要
  • div设置高度相等

    我有 3 个divs 如果另一个我怎样才能使它们相等div高度调整 我想要我的全部div即使内容较少 也可以调整其高度 就像图像中一样div没有数据必须与其他相同 并将读取更多设置在底部 HTML div class column wrap
  • PHP 会话在页面之间丢失 - 行为因服务器而异

    我花了几个月的时间在我的域上开发一个应用程序 总的来说 这是一个简单的概念 在开发过程中 我自己将其托管在自己的域中 但最近将其推到了我们实际的域中 问题是会话不是在页面之间创建或保留的 我一生都无法弄清楚为什么 对下面的代码墙表示歉意 但
  • 我需要用 C 实现巴特沃斯滤波器。获得具有此功能的库或编写代码是否更容易? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的项目是用 C 语言编写的 CodeBlocks 是我的 IDE 我在 Windows Vista 上
  • 图像、php、js 和 html 的缓存

    我想缓存所有文件 但我不知道如何让它工作以便测试通过 我目前有 我添加的最后一行只是为了测试过期和 max age 是否有帮助 它没有 我正在使用http www webpagetest org http www webpagetest o
  • 传递参数查询Access数据库

    我正在使用以下代码并尝试通过给定参数获取数据 我不知道如何将参数值传递给我的查询 Dim con As New OleDb OleDbConnection Dim ds As New DataSet Dim da As OleDb OleD
  • 如何为 ADO.NET 拆分 Oracle sql 语句

    拆分 SQL 语句以发送到 Oracle ADO NET 客户端的正确方法是什么 例如 假设您在文本文件中有以下代码并且想要执行这些语句 CREATE TABLE foo bar VARCHAR2 100 INSERT INTO foo b
  • Jetty 7 + MySQL 配置 [java.lang.ClassNotFoundException: org.mortbay.jetty.webapp.WebAppContext]

    我一直在尝试为 Jetty 配置 c3p0 db 连接池 但我不断收到 ClassNotFoundException 2010 03 14 19 32 12 028 WARN Failed startup of context WebApp
  • 你可以为 React 组件使用 es6 导入别名语法吗?

    我正在尝试执行类似以下操作 但它返回 null import Button as styledButton from component library 然后尝试将其呈现为 import React PropTypes from react