0
請糾正我,如果我的思維過程從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.js應該*只是改變'className',但在我的情況下,它正在重新渲染一切。可能是什麼原因造成的? – Trip
我不完全確定你的意思是重新渲染一切嗎?如果您使用Chrome的開發工具,受影響的DOM節點/屬性將閃爍紫色。這是你看到的整個組件? –