javascript - 是否可以通过使用类向 React 组件添加内联样式?
问题描述
所以我是 React 的新手,我来自 Angular 背景,我们只有类。
我现在想弄清楚在使用类时是否可以为我的 html 添加样式。
React 文档(关于Drawers)正在使用一个函数来创建组件。但我习惯于使用类而不是函数。
所以问题是,是否可以按照我现在尝试的方式(以及在课堂上)为元素添加样式?
const useStyles = makeStyles({
list: {
width: 250,
}
});
export default class NavBar extends Component<any, any> {
constructor(props: any) {
super(props);
this.state = { open: false };
}
// Will complain about this
readonly classes = useStyles();
render() {
return (
<div className={this.classes.list}>test</div>
)
}
}
错误:无效的挂钩调用。钩子只能在函数组件的主体内部调用。这可能是由于以下原因之一:
1. 你可能有不匹配的 React 版本和渲染器(例如 React DOM)
2. 你可能违反了 Hooks 规则
3. 你可能有多个 React 副本同一个应用程序
请参阅...以获取有关如何调试和解决此问题的提示
解决方案
这就是您可以使用样式对象在 React 中定义内联样式的方式。
const useStyles = {
list: {
width: 250,
color: 'red'
}
};
class NavBar extends React.Component {
constructor(props) {
super(props);
this.state = { open: false };
}
render() {
return (
<div style={useStyles.list}>test</div>
)
}
}
推荐阅读
- java - UX 中这些“进度圈”设计的正确术语是什么?
- http - 浏览器在重定向时不会为 localhost 保存 cookie
- python - tox 不读取 setup.cfg
- python - 我如何将 face_recognition.face_distance 结果转换为字符串然后返回
- node.js - 如何使用promise在循环后获取数据
- python - 安装 pip 时出错。扫描三引号字符串文字时的 EOF
- c++ - 找不到-lMagick++-6.Q16
- javascript - 搜索短语
- java - 如何从 Java 9 模块导出所有使用 cxg-codegen-plugin 生成的类?
- windows - 如何为 Windows 制作小型安装程序?