javascript - “const”外部组件和“static”内部组件之间的区别?
问题描述
我明白为什么会这样:
const ownStyle = { cursor: "pointer" };
class ThemeToggler extends React.Component {
render() { return (<div style={ownStyle}>Toggle theme</div>; }
}
但为什么不这样做:
class ThemeToggler extends React.Component {
static ownStyle = { cursor: "pointer" };
render() { return (<div style={this.ownStyle}>Toggle theme</div>); }
}
在第二种情况下,甚至没有创建呈现的 HTML 中的样式属性,我在调试终端和浏览器检查部分都没有看到任何错误。任何人都知道为什么第二个代码不起作用?
非常感谢您提前。
解决方案
在您的第二个示例中,该ownStyle
属性属于该类 ThemeToggler
而不是该类的实例。
这意味着您应该在类上访问它ThemeToggler
而不是使用this
(指的是该类的当前实例):
class ThemeToggler extends React.Component {
static ownStyle = { cursor: "pointer" };
render() { return (<div style={ThemeToggler.ownStyle}>Toggle theme</div>); }
}
推荐阅读
- python - 如何在 Python 中使用从 CSV 中提取的值填充数据框
- swagger - APIM 中的自动更新 OpenAPI 规范
- c# - 如何将泛型类型对象传递给类构造函数
- amazon-web-services - Cloud9 给出不同的卷曲响应
- c++builder - Embarcadero C++Builder 10.4 会有社区版吗?
- react-native - 所有 react-native-paper 组件都会抛出关于 Accessibility API 的类型错误
- python - 在 django 模型中,外键没有检索实际值
- flutter - 如何使用dio在flutter中成功响应时导航到不同的屏幕
- java - 将 springboot 升级到 2.4.2 版本后,@ActiveProfiles 注释不起作用
- linux - 如何从提交对象 git ls-tree?