- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
static 关键字不应该引用类本身的全局变量并且与组件的实例无关吗?
那么为什么在复合组件模式中,当我们实例化同一个类的多个组件时,尽管它们依赖于一个静态变量,但它们往往表现得各不相同
所以根据我对“static”关键字的理解,它是该类所有实例的全局变量,该变量的更改应该更改该类中的所有组件
static On = (props)=> props.on ? props.children : null
static Off = (props)=> !props.on ? props.children : null
static Button = ({on,toggle})=> <Switch on={on} onClick={toggle}/>
return React.Children.map(this.props.children, child=>{
return React.cloneElement(child,{
on:this.state.on,
toggle:this.toggle
})
})
<>
<Toggle onToggle={onToggle}>
<Toggle.On>The button is on</Toggle.On>
<Toggle.Off>The button is off</Toggle.Off>
<Toggle.Button />
</Toggle>
<Toggle onToggle={onToggle}>
<Toggle.On>The button is on</Toggle.On>
<Toggle.Button />
<Toggle.Off>The button is off</Toggle.Off>
</Toggle>
</>
老实说,当我影响其中一个时,我真的希望这两个组件都能打开和关闭,有人能给我解释一下吗?
最佳答案
子组件本身是静态的,不绑定(bind)到 Toggle 组件的任何单个实例。但是,您传递给静态子组件的 props 是基于 this.state
的, 绑定(bind)到每个实例。
如果您也将 state
设置为静态(或者只是给 Toggle
一个 static on
属性),则通过单击 Button 更改该属性将导致两个 Toggle
发生变化。
请注意,这与this.state
不同,因此this.setState
将不起作用,更改Toggle.state.on
不会触发重新渲染。您需要在父级中调用 this.setState
,以便触发两个 Toggles 的重新渲染。
class Toggle extends Component {
static state = { on: true }
toggle = () => {
Toggle.state.on = !Toggle.state.on
// reRenderParent should make a `setState` call in the
// parent in order to re-render both Toggles.
this.props.reRenderParent();
}
render() {
...
}
}
关于javascript - React.js 是否以不同方式处理 "static"?复合成分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56487055/
我有一些带有反应组件抽象的外部 UI,我想从试剂中重用它们,有没有什么方法可以通过从 clojurescript 传递数据来直接渲染预定义的 react 组件。我是 clojurescript 初学者
我刚刚构建了一个库(Material Components库)from source并将本地Maven存储库添加到了我的项目中。现在,我可以通过将Log调用添加到库的本地源中来成功地进行一些外行调试。
我正在尝试测试呈现 grommet 的组件菜单 组件。索环 Menu 组件将绝对定位的菜单呈现到文档的顶层,作为子级插入到 body 中。因此它呈现在包装器的范围之外。我可以使用 document.b
如何创建一个凹形的 SKPhysicsBody? 我的猜测是创建一个由多个凸体组成的复合节点。我可以用任何其他方式“粘贴”它们,从而在它们之间创建 SKPhysicsJointFixed 吗? 最佳答
我正在开发一个食谱应用程序来帮助我妻子培养她的蛋糕爱好。这个想法是创建一个食谱数据库来保存她所有的蛋糕食谱。 每个食谱都有多种成分。每种成分都会有测量值(克、毫升、茶匙等),然后是数量。 我了解如何创
我正在使用 sklearn's PCA用于对大量图像进行降维。安装 PCA 后,我想看看组件的外观。 可以通过查看 components_ 属性来做到这一点。没有意识到这是可用的,我做了其他事情: e
我是一名优秀的程序员,十分优秀!