reactjs - ThemeProvider 不会改变组件的主题,React
问题描述
我想将主题应用于 React 组件(类组件)。当我在同一个文件中定义ThemeProvider
和时,这个主题可以正常工作。CustomComponent
当我分离文件时,它停止工作。它不会将主题应用于组件。代码如下
主题组件:
import React, { Component } from "react";
import TextField from "@material-ui/core/TextField";
import PropTypes from "prop-types";
import { makeStyles, createStyles } from "@material-ui/core/styles";
import { green } from "@material-ui/core/colors";
import { withStyles } from "@material-ui/styles";
const Styles = makeStyles(theme =>
createStyles({
root: {
"&.Mui-focused": {
border: "20px solid red",
"& .MuiOutlinedInput-notchedOutline": {
border: "none"
}
}
}
})
);
class ThemedComponent extends Component {
constructor(props) {
super(props);
this.state = {
value: ""
};
}
handlePasswordChange(event) {
this.setState({ value: event.target.value });
}
render() {
console.log("I am showing All Props", this.props);
const { classes } = this.props;
console.log("I am showing ", classes);
return (
<TextField
onChange={event => this.handlePasswordChange(event)}
variant="outlined"
classes={{ root: classes.root }}
InputProps={{ className: classes.root }}
/>
);
}
}
ThemedComponent.propTypes = {
classes: PropTypes.object.isRequired
};
export default withStyles(Styles)(ThemedComponent);
自定义文本字段:
import React from "react";
import ThemedComponent from "./ThemedComponent";
import { orange } from "@material-ui/core/colors";
import { createMuiTheme, ThemeProvider } from "@material-ui/core/styles";
import { green } from "@material-ui/core/colors";
const theme = createMuiTheme({
status: {
borderStyle: "20px solid red"
}
});
function CustomTextField() {
return (
<ThemeProvider theme={theme}>
<ThemedComponent/>
</ThemeProvider>
);
}
export default CustomTextField;
应用程序.js:
return (
<div className="App">
<CustomTextField />
</div>
);
这是CodeSandBox 帮助的链接,将不胜感激。谢谢
解决方案
推荐阅读
- c++ - 为什么 c++ 的“this”被设计成指针而不是指向对象?
- java - JPA / MySQL 创建错误精度和规模
- android - 改造如何上传这样的文件 https://xxxxxx?filename=myfile.dat
- java - 如何在 java7 中处理异常“javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure”
- python - 如何找到数据框的哪些值与特定平均值“显着”不同
- javascript - 从 es6 类中的 addEventListener 触发 handleEvent()
- java - 我们如何改变我们初始化的最终变量?
- css - CSS 溢出原理
- collections - 是否有一个基于散列(快速检索)、排序、索引并允许插入的集合?
- c++ - 为什么使用此模板会增加编译器时间?