找不到模块“material-ui/styles/MuiThemeProvider”的声明文件?

Posted

技术标签:

【中文标题】找不到模块“material-ui/styles/MuiThemeProvider”的声明文件?【英文标题】:Could not find a declaration file for module 'material-ui/styles/MuiThemeProvider'? 【发布时间】:2018-02-19 11:00:17 【问题描述】:

我正在尝试使用从 npm 安装的 react material-ui 主题,当我包含“从“material-ui/styles/MuiThemeProvider”导入 MuiThemeProvider;”时出现以下错误在 boot-client.tsx 中:

TS7016:找不到模块的声明文件 'material-ui/styles/MuiThemeProvider'。 'W:/web/WebFront/node_modules/material-ui/styles/MuiThemeProvider.js' 隐含地具有“任何”类型。尝试npm install @types/material-ui/styles/MuiThemeProvider(如果存在)或添加新的 包含declare module 'material-ui/styles/MuiThemeProvider';的声明(.d.ts)文件

我尝试了这两种建议都无济于事,包括运行命令:npm install -D @types/material-ui。

我在 node_modules 中的 @types 文件夹存在相关类型。

这是我尝试使用的代码:

import './css/site.css';
import 'bootstrap';
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import  AppContainer  from 'react-hot-loader';
import  Provider  from 'react-redux';
import  ConnectedRouter  from 'react-router-redux';
import  createBrowserHistory  from 'history';
import configureStore from './configureStore';
import  ApplicationState   from './store';
import * as RoutesModule from './routes';
let routes = RoutesModule.routes;


import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';


// Create browser history to use in the Redux store
const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href')!;
const history = createBrowserHistory( basename: baseUrl );

// Get the application-wide store instance, prepopulating with state from the server where available.
const initialState = (window as any).initialReduxState as ApplicationState;
const store = configureStore(history, initialState);

function renderApp() 
    // This code starts up the React app when it runs in a browser. It sets up the routing configuration
    // and injects the app into a DOM element.
    ReactDOM.render(

, document.getElementById('react-app') );

renderApp();

// Allow Hot Module Replacement
if (module.hot) 
    module.hot.accept('./routes', () => 
        routes = require<typeof RoutesModule>('./routes').routes;
        renderApp();
    );

【问题讨论】:

请在您尝试设置的应用程序中提供一些代码 sn-ps MuiThemeProvider 完成,还添加了更多细节 :) 只导入就会报错吗? 我引用的第一个错误是在浏览器中,第二个是在导入中。 您正在导入但未使用MuiThemeProvider。您需要使用 MuiThemeProvider 组件包装您的应用程序 【参考方案1】:

使用从同一路径导入的default

import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'

【讨论】:

【参考方案2】:

好的,我想通了,默认情况下,在“compilerOptions”下的 tsconfig.json 中,visual-studio 的类型设置为 [“webpack-env”],我需要向其中添加“material-ui”或选择性地删除它:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

【讨论】:

你能用代码 sn-p 详细说明一下吗?

以上是关于找不到模块“material-ui/styles/MuiThemeProvider”的声明文件?的主要内容,如果未能解决你的问题,请参考以下文章

Theme.spacing 不是函数

颤振:“致命错误:找不到模块'位置'”Xcode找不到模块

windows找不到指定模块怎么办?

找不到指定模块

S7200编程时找不到添加模似量模块设置

解决找不到pip模块的问题