pet*_*gan 3 javascript ecmascript-6 reactjs
这是一个直截了当的问题,但在switch声明中可以不返回default状态吗?
switch 语句位于 React 组件中,如下所示。
const App = (chosenTeam) => {
const renderSection = (team) => {
switch (team) {
case 'LFC':
return <Liverpool />;
case 'MUFC':
return <TerribleTeam />;
case 'Chelsea':
return <Blues />;
}
}
return {renderSection(chosenTeam)}
}
Run Code Online (Sandbox Code Playgroud)
不,它是可选的,请参阅switch on MDN:
default选修的默认条款;如果提供的话,如果表达式的值与任何 case 子句都不匹配,则执行此子句。
无论如何,您应该使用字典对象而不是 switch:
const team = {
LFC: <Liverpool />,
MUFC: <TerribleTeam />,
Chelsea: <Blues />
};
const App = chosenTeam => <>{team[chosenTeam]}</>;
Run Code Online (Sandbox Code Playgroud)
主要方面是您可以获得对象的所有功能。
请注意,在组件主体内渲染组件可能会导致性能权衡(除非它们记忆):
const App = chosenTeam => {
// v Executed on *every* render
const renderSection = team => { ... };
return <>...</>;
};
Run Code Online (Sandbox Code Playgroud)
// v Should be in the outer scope if you keeping the function
const renderSection = team => {
switch (team) { ... }
};
const App = chosenTeam => {
return <>...</>;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1779 次 |
| 最近记录: |