说我正在做Tab+Panel调用的组件TabsPanels。我想确保我得到了相同数量的Tab和Panel组件,如下所示:
type TabsPanelsProps = {
tabs: Tab[];
panels: Panel[];
}
Run Code Online (Sandbox Code Playgroud)
<TabsPanels
tabs={[<Tab/>, <Tab/>]}
panels={[<Panel/>]} // Error: tabs.length and panels.length do not match
/>
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?如果有一些效用函数,比如
PropsAreEqual<T, K1, K2, P>
where
T = type
K1 = key 1
K2 = key 2
P = the property to be equal
Run Code Online (Sandbox Code Playgroud)
这显然很糟糕,但你明白我在说什么。那么你可以做
PropsAreEqual<TabsPanelsProps, 'tabs', 'panels', 'length'>
Run Code Online (Sandbox Code Playgroud) 我有一堂课叫QueryAddable
class QueryAddable extends HTMLElement {
connectedCallback() {
console.log('QueryAddable');
}
Run Code Online (Sandbox Code Playgroud)
它有几个扩展它的类,例如
class QueryGroup extends QueryAddable {
constructor() {
super();
}
connectedCallback() {
console.log('QueryGroup');
}
Run Code Online (Sandbox Code Playgroud)
最好,如果我放在<query-group>页面上,我希望看到QueryAddable并QueryGroup登录控制台。我想这不会发生,因为我只<query-group>在页面上而不是<query-addable>.
我完全可以将一个方法放入QueryAddable被调用的方法中,onLoad并在每个扩展类的 中调用该方法connectedCallback,但为什么我必须在多个地方而不是一个地方执行此操作呢?
有没有办法让这两个connectedCallback函数都运行,或者是否设置为只有一个函数可以运行?