【问题标题】:npm react module errornpm 反应模块错误
【发布时间】:2018-10-05 17:03:23
【问题描述】:

我目前正在尝试构建一个 react 组件库。

我设置了this 项目,但是当我尝试将其包含在演示项目中时,我收到以下错误:

不变量违反

元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。

检查'App'的渲染方法。

我的 index.js:

import Button from "./components/Button";

export default {
  Button
};

我的示例组件

import styled from 'styled-components';
const Button = styled.button`
  background: #1FB6FF;
  border: none;
  border-radius: 2px;
  color: #FFFFFF;
  cursor: pointer;
  display: inline-block;
  font-size: 16px;
  line-height: 40px;
  font-weight: 200;
  margin: 8px 0;
  outline: none;
  padding: 0 12px;
  text-transform: uppercase;
  transition: all 300ms ease;
  &:hover {
    background: #009EEB;
  }
`;
export default Button;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

谁能说出问题出在哪里?

提前致谢!

【问题讨论】:

  • 发布您的代码。
  • 我在描述中链接了 github 项目,因为我认为问题可能不仅仅与主文件有关
  • 酷,发布您的代码。而且那个 GitHub 项目甚至没有 App.js 文件。
  • 它有一个 index.js
  • export default { Button } 应该是:export default Button

标签: reactjs npm package components


【解决方案1】:

我认为export default { Button } 应该是:export default Button

【讨论】:

  • 你的 HTML 渲染在哪里?
  • 我应该这样做吗?
  • 什么?您不会在任何地方渲染组件,例如带有ReactDOM.render() 的 App.js 文件。
【解决方案2】:

试试这个,在你的 index.js 文件中,而不是

export * from "./components/Button";

这样做

export Button from "./components/Button";

export default { Button }

应该是:

export default Button.

更多信息请参考ES6 export * from import?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    相关资源
    最近更新 更多