【发布时间】:2019-10-05 00:07:51
【问题描述】:
我正在研究react-accessible-accordion 的代码,但我不明白它是如何渲染其子代的。
来自Accordion.tsx:
export default class Accordion extends React.Component<AccordionProps> {
// ... defaults
renderAccordion = (accordionContext: AccordionContext): JSX.Element => {
const {
preExpanded,
allowMultipleExpanded,
allowZeroExpanded,
onChange,
...rest
} = this.props;
return <div data-accordion-component="Accordion" {...rest} />;
};
render(): JSX.Element {
return (
<Provider
preExpanded={this.props.preExpanded}
allowMultipleExpanded={this.props.allowMultipleExpanded}
allowZeroExpanded={this.props.allowZeroExpanded}
onChange={this.props.onChange}
>
<Consumer>{this.renderAccordion}</Consumer>
</Provider>
);
}
}
该组件接受几层嵌套的子级。具体来说,我不明白它们是如何被传承下来的。
我可以看到该组件将其余的道具散布在一个自闭合的 Accordion div 元素上...该机制如何管理渲染多个级别的子级?
【问题讨论】:
标签: reactjs typescript