我有包含带有标题的页面的网络应用程序。标题中有 3 个按钮,我想将确认组件“附加”到其中一个,这意味着当我单击该按钮时,将显示确认组件。代码如下所示:
const renderButtons = (actions: Interfaces.DeclarationAction[]) =>
actions.map((action, i) => {
if (action.name === 4) {
<Confirm
name={modalName()}
content="Are you sure?"
onConfirm={checkingFinish}
/>
}
<ActionButton
key={i}
action={action}
onClickAction={props.onClickAction}
declaration={props.declaration}/>
});
如您所见,renderButtons 渲染了这 3 个按钮,但出现了错误。请看下面的屏幕截图:
如何摆脱错误?
看起来您可能刚刚错过了一个return
声明。此外,我认为您不想要第四个Action
按钮,但我不确定。你可能想要这样的东西:
const renderButtons = (actions: Interfaces.DeclarationAction[]) =>
actions.map((action, i) => {
return(action.name === 4 ?
<Confirm
name={modalName()}
content="Are you sure?"
onConfirm={checkingFinish}
/> :
<ActionButton
key={i}
action={action}
onClickAction={props.onClickAction}
declaration={props.declaration}/>
)
}
);
或者:
const renderButtons = (actions: Interfaces.DeclarationAction[]) =>
actions.map((action, i) => (action.name === 4 ?
<Confirm
name={modalName()}
content="Are you sure?"
onConfirm={checkingFinish}
/> :
<ActionButton
key={i}
action={action}
onClickAction={props.onClickAction}
declaration={props.declaration}/>
)
);
请注意,在您的代码中,您有一个类似的块
if (condition) {
// do something
}
// do something else
像这样的块总是 do something else
,但只有do something
在满足条件时才会。因此,如果actions
包含三个东西,其中一个包含,action.name === 4
那么您将获得四个组件,其中一个将是一个Confirm
组件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句