withStyles:TypeError:prevDeps未定义

时间:2019-10-10 13:42:34

标签: reactjs material-ui

我目前正在接受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)

1 个答案:

答案 0 :(得分:0)

我认为发生这种情况是因为styles是一个函数,您不能将函数传递给withStyle

创建另一个文件并导出myJss时,它将返回myJss文件中已经生成的样式,该样式是可以传递给withStyle的对象。