我目前正在接受ReactJS的培训。 我正在使用material-ui。
我不知道我对withStyles是否还行。
通过这个简单的代码(见下文),我收到TypeError:prevDeps未定义。
如果我在应用程序组件中删除setState,就可以了。
如果我通过测试组件中的`withStyles(myJss)(Test)更改行withStyles(styles)(Test)
,就可以了。
为什么?任何想法 ?
感谢帮助;)
myJss.js
const myJss = theme => ({
textCenter : {
textAlign:'center'
}
});
export default myJss;
app.js
import React, { Component } from 'react'
import { makeStyles, withStyles } from "@material-ui/core/styles";
import Test from '../components/test'
import myJss from 'assets/jss/myJss.js';
const styles = makeStyles(myJss);
class App extends Component {
constructor (props) {
super(props)
this.state = ({
test:false
})
}
componentDidMount () {
this.setState({test:true})
}
render () {
return (
<div>
APP
<Test />
</div>
)
}
}
export default withStyles(styles)(App)
test.js
import React, { Component } from 'react'
import { makeStyles, withStyles } from "@material-ui/core/styles";
import myJss from 'assets/jss/myJss.js';
import classNames from "classnames";
const styles = makeStyles(myJss);
class Test extends Component {
constructor (props) {
super(props)
this.state = {
searchText:""
};
}
render() {
const { classes } = this.props;
return (
<div className={classNames(classes.textCenter)}>test2</div>
);
}
}
export default withStyles(styles)(Test)
答案 0 :(得分:0)
我认为发生这种情况是因为styles
是一个函数,您不能将函数传递给withStyle
。
创建另一个文件并导出myJss
时,它将返回myJss
文件中已经生成的样式,该样式是可以传递给withStyle
的对象。