我对ReactJS很陌生,但从我收集到的内容中,以下代码应该可以正常工作,而且不会。
我使用npm命令create-react-app
创建了一个新的ReactJS项目。
在我的项目文件夹中,我已经使用npm install --save material-ui@next
安装了Google的材料ui。
我会根据我尝试从材料-ui'
中导入的内容而得到各种错误。 import Card from 'material-ui/Card'
我使用VS Code作为我的编辑器,如果我在' material-ui / Card'上点击F12。它告诉我卡是默认导出,上面的导入工作。
import {Card} from 'material-ui'
如果我在&f;材料-ui'上点击F12。它告诉我卡是一个命名导出,上面的导入工作。
我遇到麻烦的地方是当我尝试导入其他东西时。例如:
import {Card, CardText} from 'material-ui'
卡片导入正常,但当我尝试使用< CardText>我收到以下错误:
React.createElement: type is invalid -- expected a string (for built-in
components) or a class/function (for composite components) but got:
undefined. You likely forgot to export your component from the file it's
defined in.
然而,据我所知,他们都以同样的方式出口。
declare module "material-ui" {
export import Card = __MaterialUI.Card.Card;
export import CardText = __MaterialUI.Card.CardText;
}
进一步挖掘:
export interface CardTextProps {
actAsExpander?: boolean;
color?: string;
expandable?: boolean;
style?: React.CSSProperties;
className?: string;
}
export class CardText extends React.Component<CardTextProps> {
}
当他们看起来应该工作时,其他进口也失败了:
import getMuiTheme from 'material-ui/styles/getMuiTheme'
Module not found: Can't resolve 'material-ui/styles/getMuiTheme'
但据我所知,它就在那里......
答案 0 :(得分:1)
我认为您使用的是版本0.19.2的打字稿定义,而不是 material-ui @ next 引用的新版本1.0.0beta。
V1来源甚至没有CardText:https://github.com/callemall/material-ui/tree/v1-beta/src/Card。进口是这样的:
import Card, { CardHeader, CardMedia, CardContent, CardActions } from 'material-ui/Card';