[英]Set a tab as active in material ui tab component
我使用 material ui 作为当前项目的强制库。 一个项目的一个页面需要四个选项卡,所以我使用的是材质ui库中的选项卡组件。
当我呈现默认包含选项卡的页面时,第一个选项卡是活动选项卡。 我想将第四个选项卡设置为活动状态。
从文档中,我看到了 Tab 的“ value ”属性。 因此,我将每个选项卡的四个选项卡的值分别设置为 1、2、3 和 4。 当 Inavigate 到相应的屏幕时,我会发送一个操作,该操作将我的商店中的属性选项卡值设置为 4。
然后虽然 mapStateToProps 我让我的组件可以访问这个属性。 所以当我进入页面时的值是四,但活动标签仍然是第一个。 让我向您展示我的代码:
const mapStateToProps = state => ({
value: state.get('tabValue');
});
const mapDispatchToProps = dispatch => ({
tabClicked: () => setActiveTab('tabValue', 4)
})
我的组件:
const Tabs = ({ value }) => (
<Tabs>
<Tab value={1}></Tab>
....
<Tab value={value}</Tab>
</Tabs
)
默认情况下,为了选择不同的选项卡,请使用 initialSelectedIndex。 它将是这样的形式
<Tabs initialSelectedIndex={value}>
<Tab value={1}></Tab>
...
<Tab value={4}></Tab>
</Tabs>
从今天最新版本的 Material UI ( 4.1
) 开始,通过在Tabs
定义的属性value
设置默认的活动选项Tabs
。 下面的示例代码默认打开Tab 2
:
<Tabs value={1}>
<Tab label="Tab 1" {...a11yProps(0)} />
<Tab label="Tab 2" {...a11yProps(1)} />
</Tabs>
<TabPanel value={0} index={0}>
Item One
</TabPanel>
<TabPanel value={1} index={1}>
Item Two
</TabPanel>
您可以使用状态来设置初始选项卡选择。
const [value, setValue] = React.useState(2);
const handleChange = (event, newValue) => {
setValue(newValue);
};
根据MUI Tabs
文件必须添加value
ATTR在<Tabs>
为
当前选择的
Tab
的值。 如果您不想要任何选定的Tab
,您可以将此属性设置为false
。
并且根据MUI Tab
Doc你必须在<Tab>
添加value
attr for
你可以提供你自己的价值。 否则,我们回退到子位置索引。
代码示例:
const Tabs = ({ value }) => (
<Tabs value={value}>
<Tab value={1}></Tab>
....
<Tab value={value}</Tab>
</Tabs>
)
Tabs
和Tab
value
必须是同一类型
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.