我有一个名为MyButtons.js的文件,我想从中导出两个无状态功能组件,其中一个包含一个style
变量。但出现以下错误。
路径/到/MyButtons.jsSyntaxError:path / to / MyButtons.js:当前未启用对实验语法'exportDefaultFrom'的支持(64:8):
64 |导出withStyles(styles)({AllButtonsRow,UDButtons,});
我在做什么错了?
MyButtons.jsimport React from 'react';
import { withStyles, } from '@material-ui/core';
const styles = theme => ({
button: {
margin: theme.spacing.unit,
},
});
const MyRegularButton = props => (<Button>Click me!</Button>);
const MyStyledButton = props => (<Button className={classes.button}>Click me!</Button>);
export withStyles(styles)({ MyRegularButton, MyStyledButton, });
答案 0 :(得分:3)
您忘记了default
关键字:
export default withStyles(styles)({ MyRegularButton, MyStyledButton })
答案 1 :(得分:1)
default
关键字。props.classes.button
通过道具访问它们theme
属性传递到样式函数中。 By default this is set to false。否则,您将无法访问诸如theme.spacing.unit
之类的属性。总而言之,您需要将最后一行更改为以下内容:
export default withStyles(styles, { withTheme: true })({ MyRegularButton, MyStyledButton })
答案 2 :(得分:0)
除了接受的答案外,还需要按如下所示将classes
添加到输入props
对象中。
const MyStyledButton = ({ classes, }) => (...
因此,整个文件的内容如下。 (编辑:@MattC合并的答案)
MyButtons.jsimport React from 'react';
import { withStyles, } from '@material-ui/core';
const styles = theme => ({
button: {
margin: theme.spacing.unit,
},
});
const MyRegularButton = props => (<Button>Click me!</Button>);
const MyStyledButton = ({ classes, }) => (
<Button className={classes.button}>Click me!</Button>
);
export default withStyles(styles, { withTheme: true })({ MyRegularButton, MyStyledButton })