zer*_*ing 6 typescript reactjs material-ui
考虑以下组件的代码片段:
...
...
function a11yProps(index: any) {
return {
id: `simple-tab-${index}`,
'aria-controls': `simple-tabpanel-${index}`,
};
}
...
...
return (
<div className={classes.root}>
<AppBar position="static">
<Tabs value={value} onChange={handleChange} aria-label="simple tabs example">
<Tab label="Item One" {...a11yProps(0)} />
<Tab label="Item Two" {...a11yProps(1)} />
<Tab label="Item Three" {...a11yProps(2)} />
</Tabs>
</AppBar>
<TabPanel value={value} index={0}>
Item One
</TabPanel>
<TabPanel value={value} index={1}>
Item Two
</TabPanel>
<TabPanel value={value} index={2}>
Item Three
</TabPanel>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
我很难理解以下组件的实现:
<Tab label="Item One" {...a11yProps(0)} />
Run Code Online (Sandbox Code Playgroud)
这是什么{...a11yProps(0)} 意思?这是否意味着我传递这里的属性?
当我查看Tab的 API 文档时,我找不到id和aria-controls属性。
它只是一个用于创建动态对象并将其用作道具的函数,以减少代码大小。
<Tab label="Item One" id="simple-tab-0" ariaControls="simple-tabpanel-0"/>
Run Code Online (Sandbox Code Playgroud)
关于 TypeScript 和 Docs:如果您按住 ctrl 键并单击 Material-UI 组件,您可以看到它们在React.ElementType其中扩展了组件类型,您可以找到JSX.IntrinsicElements每个 HTML 元素都具有扩展React.DetailedHTMLProps的 props和。因此,您很自然地可以将该标签的所有可用属性传递给它们!HTMLAttributesAriaAttributesDOMAttributes
| 归档时间: |
|
| 查看次数: |
8615 次 |
| 最近记录: |