无论选择哪个选项卡,每次都会调用所有 React-bootstrap 选项卡渲染函数
All React-bootstrap Tabs render function gets called every time regardless of which tab was selected
以下是我的代码:
var WholeTab=React.createClass
({
getInitialState:function()
{
return {
key: 1
};
},
handleSelect:function(key)
{
this.setState({key});
},
render:function()
{
return (
<Tabs defaultActiveKey={1} id="controlled-tab-example">
<Tab eventKey={1} title="Tab 1"><One/></Tab>
<Tab eventKey={2} title="Tab 2"><Two/></Tab>
<Tab eventKey={3} title="Tab 3"><Three/></Tab>
</Tabs>
);
}
});
var One=React.createClass({
render:function(){
alert("one");
return(
<p>We are here</p>
);
}
});
var Two=React.createClass({
render:function(){
alert("two");
return(
<p>We are here</p>
);
}
});
var Three=React.createClass({
render:function(){
alert("three");
return(
<p>We are here</p>
);
}
});
我注意到的是,每当一个选项卡发生变化时,所有选项卡的渲染函数都会被调用,无论它们是否被选中,而且这不是一次,而是 3 次。
这只是一个蹩脚的例子,但如果我在每个选项卡中都有很多内容,我上面描述的行为肯定会影响网页的性能并使其变慢。我做错了什么或者这是 react-bootstrap 选项卡的错误,因为从逻辑上讲,不应在每次更改时调用所有选项卡的渲染功能。
react-bootstrap Tabs
组件有一个布尔值 属性 unmountOnExit
导致活动选项卡成为 [=18= 中唯一实际存在的选项卡].
以下是我的代码:
var WholeTab=React.createClass
({
getInitialState:function()
{
return {
key: 1
};
},
handleSelect:function(key)
{
this.setState({key});
},
render:function()
{
return (
<Tabs defaultActiveKey={1} id="controlled-tab-example">
<Tab eventKey={1} title="Tab 1"><One/></Tab>
<Tab eventKey={2} title="Tab 2"><Two/></Tab>
<Tab eventKey={3} title="Tab 3"><Three/></Tab>
</Tabs>
);
}
});
var One=React.createClass({
render:function(){
alert("one");
return(
<p>We are here</p>
);
}
});
var Two=React.createClass({
render:function(){
alert("two");
return(
<p>We are here</p>
);
}
});
var Three=React.createClass({
render:function(){
alert("three");
return(
<p>We are here</p>
);
}
});
我注意到的是,每当一个选项卡发生变化时,所有选项卡的渲染函数都会被调用,无论它们是否被选中,而且这不是一次,而是 3 次。 这只是一个蹩脚的例子,但如果我在每个选项卡中都有很多内容,我上面描述的行为肯定会影响网页的性能并使其变慢。我做错了什么或者这是 react-bootstrap 选项卡的错误,因为从逻辑上讲,不应在每次更改时调用所有选项卡的渲染功能。
react-bootstrap Tabs
组件有一个布尔值 属性 unmountOnExit
导致活动选项卡成为 [=18= 中唯一实际存在的选项卡].