导入组件

问题描述 投票:0回答:3

这是我的第一个React应用程序,因此非常容易回答。

要导入的组件:

import React, { useState } from "react";
import {
  Dropdown,
  DropdownToggle,
  DropdownMenu,
  DropdownItem
} from "reactstrap";

const DropdownPaging = props => {
  const [dropdownOpen, setDropdownOpen] = useState(false);

  const toggle = () => setDropdownOpen(prevState => !prevState);

  return (
    <Dropdown isOpen={dropdownOpen} toggle={toggle}>
      <DropdownToggle caret>Dropdown</DropdownToggle>
      <DropdownMenu>
        <DropdownItem header>Header</DropdownItem>
        <DropdownItem>Some Action</DropdownItem>
        <DropdownItem disabled>Action (disabled)</DropdownItem>
        <DropdownItem divider />
        <DropdownItem>Foo Action</DropdownItem>
        <DropdownItem>Bar Action</DropdownItem>
        <DropdownItem>Quo Action</DropdownItem>
      </DropdownMenu>
    </Dropdown>
  );
};

export default DropdownPaging;

消费组件:

import { DropdownPaging } from "./DropdownPaging";

并且在我的render方法中,我只调用了该组件:

<DropdownPaging></DropdownPaging>

我收到以下错误:

尝试导入错误:“ DropdownPaging”未从中导出'./DropdownPaging'。

我关注了此示例:https://create-react-app.dev/docs/importing-a-component/

两个组件都在同一文件夹中。

reactjs
3个回答
1
投票

您将DropdownPaging导出为default export,但是像其他导出一样将其导入。

要么更改导出:

export DropdownPaging;

更改导入:

export DropdownPaging from './DropdownPaging';


1
投票

我认为您的错误是在import statement上:

import { DropdownPaging } from "./DropdownPaging";

当使用居中括号{}导入某些内容时,您正在使用称为命名的导入,但是在DropdownPaging中,您正在进行default导出,以便修复错误您需要这样做:

import DropdownPaging from "./DropdownPaging";

如果您要使用命名的出口,解决方案是更改DropdownPaging组件上的出口,并使用{}保留进口:

// In the DropdownPaging component
export DropdownPaging

// In the component doing the import
import DropdownPaging from "./DropdownPaging";

您可以在此dev.to article上了解有关命名与默认导出的更多信息>

我还创建了一个codesandbox,其中包含一些有关如何在Javascript中使用不同类型的导入的示例(带有ES6)


0
投票

这是使用命名导出和默认导出的方法

© www.soinside.com 2019 - 2024. All rights reserved.