【问题标题】:Namespace 'React' has no exported member 'ConsumerProps', ProviderProps命名空间“React”没有导出成员“ConsumerProps”、ProviderProps
【发布时间】:2018-08-01 18:47:44
【问题描述】:

我正在尝试在 Visual Studio 中安装这个库,我的反应版本是 15.0.35。我可以在这个版本的反应中使用这个库吗?如果没有,是否还有其他与此版本兼容的库?

import * as React from 'react';
import { RouteComponentProps, NavLink } from 'react-router-dom';
import { DragEvent } from 'react';
import { ApplicationState } from '../store';
import * as NavMenuStore from '../store/NavMenu';
import { connect } from 'react-redux';
import D4AMenuItem from './D4AMenuItem';
import { State } from 'react-burger-menu';
import CardContainer from './CardContainer';
import {
ConnectDragSource,
DragDropContext,
DragSourceSpec,
DragSource,
DragSourceCollector,
DragSourceConnector,
DragSourceMonitor,
DragElementWrapper,
ConnectDropTarget,
DropTargetConnector,
DropTargetMonitor,
DropTargetSpec
} from 'react-dnd';

 //render method

 public render() {

    let dropped = this.props.SelectedMenuItems.map((menu: any) => {
        return (
            <span 
                key={Math.random()}
                draggable={true}
                onDragStart={(e: DragEvent<any>) => this.onDragStart(e, menu.MenuText)}>
                <NavLink to={menu.RoutePath} activeClassName='active' className='D4AMenuItemNew'>
                    <img className='D4AIconNew' alt='Audit4Action_Icon' src={String(menu.IconPath)}></img>
                    <span className='D4ATextNew'>
                    </span> {menu.MenuText}

                </NavLink>

           </span>    
        );
    })
    return <div >

        <div className='dropping_div' onDragOver={(e: any) => this.onDragOver(e)} onDrop={(e: DragEvent<any>) => this.onDrop(e)}>{dropped}</div>               

        <div><h1>Drag and Drop Containers Over Each Other to Swap Places</h1>
            <CardContainer /> { /*swap={() => this.swap()} drag={(e: DragEvent<any>) => this.drag(e)} cards={this.state.info}*/} </div>

    </div>;
}

}

导出默认连接( (state: ApplicationState) => state.navmenu, // 选择哪些状态属性被合并到组件的 props 中 NavMenuStore.actionCreators // 选择将哪些动作创建者合并到组件的道具中 )(家一样);

【问题讨论】:

  • 您的导入语句可能有问题。如果您提供代码示例,我们可能会发现它。
  • 我已更新代码以显示我的导入语句
  • 您在什么代码上收到错误“命名空间 'React' 没有导出的成员 'ConsumerProps', ProviderProps”?我在您发布的代码中根本没有看到这些内容。
  • 从“react-dnd”导入时出现该错误。如果我注释掉该语句,我的代码就可以正常工作。但是我需要对拖放功能做出反应 dnd,由于这个问题,我现在无法使用它
  • 我仍然无法重现问题或找出引用 ConsumerProps 和 ProviderProps 的内容。是否有与错误消息关联的文件名?你能分享你的整个 package.json 和 package-lock.json 文件吗(例如,通过 GitHub Gist)?

标签: reactjs typescript react-dnd


【解决方案1】:

我可以解释该错误的唯一方法是,如果您尝试将 react-dnd 4 或更新版本与 React 15 一起使用,但 react-dnd 4 声明它需要 React 16.3 或更新版本。你应该在运行npm install时看到这样的警告:

npm WARN react-dnd@4.0.0 requires a peer of react@>= 16.3 but none is installed. You must install peer dependencies yourself.

我预计您可能会在运行时遇到不兼容问题以及类型检查问题。改用 react-dnd 3.0.2 版。

【讨论】:

  • react-dnd 3.0.2 导致我项目中的其他包被卸载。 :(
  • 对此我无能为力,抱歉。您需要为您的项目确定一组兼容的包版本。
  • 感谢您的帮助。我会找到一个可能适合我的项目的包。
猜你喜欢
  • 1970-01-01
  • 2018-06-16
  • 1970-01-01
  • 2018-03-16
  • 2021-06-05
  • 2021-04-05
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
相关资源
最近更新 更多