[英]Render JSX Switch Case with onClick event
I'm trying to call a switch case verification with a onClick event but my DOM does not get updated.我正在尝试使用 onClick 事件调用 switch case 验证,但我的 DOM 没有更新。 This is my code:
这是我的代码:
function app() {
const showTab = tabContentID => {
switch (tabContentID) {
case 'tab-1':
return <TabContent id='tab-1'>Patients Content</TabContent>;
case 'tab-2':
return <TabContent id='tab-2'>Recents Content</TabContent>;
case 'tab-3':
return <TabContent id='tab-3'>Favorites Content</TabContent>;
default:
return <TabContent id='tab-1'>Patients Content</TabContent>;
}
};
return (
<div>
<Tabs initialTab='tab-1' activeTabIndex='9999'>
<Tab tabContentID='tab-1' onClick={() => showTab('tab-1')}>
Tab 1
</Tab>
<Tab tabContentID='tab-2' onClick={() => showTab('tab-2')}>
Tab 2
</Tab>
<Tab tabContentID='tab-3' onClick={() => showTab('tab-3')}>
Tab 3
</Tab>
</Tabs>
</div>
);
}
What i was speculating to happen is on clicking the first Tab, render the case 'tab-1'
, but nothing changes.我推测发生的是单击第一个选项卡,呈现案例
'tab-1'
,但没有任何变化。 What i'm doing wrong?我做错了什么?
I have tried calling {showTab}
after my </Tabs>
but i didnt worked.我曾尝试在我的
</Tabs>
之后调用{showTab}
,但我没有工作。
You are returning jsx
from your function, but never specifying an insertion point.您从
jsx
返回 jsx,但从未指定插入点。 You could associate the returned value to a state's variable, like this您可以将返回的值与状态的变量相关联,如下所示
class Component extends React.Component{
state = {
content : null
}
showTab = tabContentID => {
switch (tabContentID) {
case 'tab-1':
return this.setState({content: <TabContent id='tab-1'>Patients Content</TabContent>})
case 'tab-2':
return this.setState({content: <TabContent id='tab-2'>Recents Content</TabContent>})
case 'tab-3':
return this.setState({content: <TabContent id='tab-3'>Favorites Content</TabContent>})
default:
return this.setState({content: <TabContent id='tab-1'>Patients Content</TabContent>})
}
}
render(){
const { content } = this.state
return (
<div>
<Tabs initialTab='tab-1' activeTabIndex='9999'>
<Tab tabContentID='tab-1' onClick={() => this.showTab('tab-1')}>
Tab 1
</Tab>
<Tab tabContentID='tab-2' onClick={() => this.showTab('tab-2')}>
Tab 2
</Tab>
<Tab tabContentID='tab-3' onClick={() => this.showTab('tab-3')}>
Tab 3
</Tab>
</Tabs>
{content}
</div>
)
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.