是否可以在不重新渲染的情况下显示/隐藏父对象中的元素
Is it possible to show/hide an element in a parent without rerendering?
如果我的思维过程与React.js的正统思想不同,请纠正我…
我有一个父级< MainViewController />
,它有一个<View />
子级。
如果在我的<View />
中发生滚动事件,那么我想在父< MainViewController />
中显示/隐藏一个按钮。
不幸的是,现在我正在使用setState
来切换,但它会重新调用父级,因此也会重新调用它的所有子级。基本上,它重置了我的整个应用程序。有没有一种更简单的方法可以在不重新渲染的情况下切换隐藏/显示?
我的相关代码:
var MainViewController = React.createClass({
getInitialState () {
return {
showAskQuestion: false,
};
},
toggleFloatingButton () {
this.setState({
showAskQuestion: !this.state.showAskQuestion
});
},
render () {
return (
<Container>
<UI.NavigationBar name="main" />
<UI.Button type="info" className={ this.state.showAskQuestion ? '' : 'hidden' } >
Ask A Question
</UI.Button>
<ViewManager name="main" defaultView="tabs">
<View name="tabs" component={TabViewController} toggleFloatingButton={this.toggleFloatingButton} />
</ViewManager>
</Container>
);
}
});
React的核心思想是,当组件发生变化时,它会重新渲染整个组件。为了防止速度太慢,React只将其渲染为DOM的虚拟表示,然后将虚拟DOM与真实DOM进行检查,并进行最小数量的更改以使它们同步。
当您更新组件中的状态时,React将构建虚拟表示,但它几乎与真实DOM相同。唯一的区别是以下属性:
className={ this.state.showAskQuestion ? '' : 'hidden'}
React唯一能做的"实际"重新渲染就是更新这个属性。
相关文章:
- 取消隐藏网站中的隐藏对象
- 编程实践-使用helper方法隐藏对象
- Three.js-显示/隐藏对象的一部分
- 需要关于定位初始隐藏对象的建议
- Javascript:如何隐藏对象的属性
- 使可见对象隐藏和隐藏对象可见
- 如何使用单击和转义键隐藏对象
- 隐藏对象并通过单击显示它
- wordpress中的jQuery——隐藏对象
- 如何在使用console.log时隐藏对象上的一些密钥
- 在iframe中的脚本中隐藏对象的某些属性
- 隐藏对象's字段
- Javascript隐藏对象元素数据值的子节点
- 动态循环JSON,并在设置间隔后显示和隐藏对象元素
- 如何在Javascript中动态隐藏对象
- 在点击按钮时显示隐藏对象(PHP与javaScript)
- MTURK:在预览中隐藏对象,显示何时接受HIT (URL在预览中更改,根据URL隐藏)
- 使用css隐藏对象
- 只打印隐藏对象标签的内容
- 隐藏对象属性从所有对象除了一个在javascript