【问题标题】:Referencing a React-Redux TypeScript component in another TypeScript component causes a "no export member" error在另一个 TypeScript 组件中引用 React-Redux TypeScript 组件会导致“无导出成员”错误
【发布时间】:2019-05-10 05:35:17
【问题描述】:

我有以下名为 TopBar 的 TypeScript (v3.01) React 组件,我现在正在向其中添加 React-Redux。然后在名为 Layout 的父组件中引用 TopBar 组件。

import * as React from 'react';
import { connect } from "react-redux";

import { decrementZoomLevel, incrementZoomLevel, setCenterPoint, setZoomLevel } from '../store/actions';

class TopBar extends React.Component<any, any>{
...
};

/*
 * Redux-React setup
*/
const mapStateToProps = (state: any): any => {
  return {
    centerPoint: state.centerPoint,
    zoomLevel: state.zoomLevel
  }
}

export default connect(mapStateToProps)(TopBar);

但是,当我在另一个 Layout TypeScript 组件中引用该组件时

import * as React from 'react';
import { TopBar } from './TopBar';

export class Layout extends React.Component<any, any> {
...
};

我收到以下 TypeScript 错误

(TS) 模块:“C:/....../TopBar”没有导出成员“TopBar”。

在添加 React-Redux 代码之前,类定义是

export default class TopBar extends React.Component<any, any>{
...
};

并且我能够在没有错误的情况下在 Layout 中引用 TopBar 组件。

现在我添加了 React-Redux connect() 语句,如何在另一个组件中正确引用 TopBar?

【问题讨论】:

    标签: reactjs typescript redux react-redux


    【解决方案1】:

    这是默认导出,你必须这样导入。

    import * as React from 'react';
    import TopBar from './TopBar';
    
    export class Layout extends React.Component<any, any> {
    ...
    };
    

    【讨论】:

    • 当我使用此导入语句时,我收到错误“(TS)找不到名称 TopBar”,因为在布局组件中对 TopBar 的任何引用。
    • 我也遇到了这个问题。 import { TopBar } from './TopBar'; 可能以前工作过,因为它不是默认导出。现在它是默认导出,它应该更改为import TopBar from './TopBar';
    猜你喜欢
    • 1970-01-01
    • 2021-04-28
    • 2016-08-13
    • 2020-07-06
    • 1970-01-01
    • 2021-04-19
    • 2021-05-29
    • 1970-01-01
    • 2018-08-24
    相关资源
    最近更新 更多