#reactjs #jsx
Вопрос:
Я хочу написать так в своем jsx, но я не знаю, как это сделать.
if(condition){
if(condition){
}else{
}
}
Как я могу так писать в jsx? спасибо за помощь.
{canDelete === 1 amp;amp; //first if
{u.status === 'Active' ?( //second if
<Tooltip>Deactivate</span>} arrow>
<IconButton
className={classes.deactivateButton}
>
<HighlightOffIcon />
</IconButton>
</Tooltip>
):( //else
<Tooltip>Activate</span>} arrow>
<IconButton
className={classes.activateButton}
>
<CheckCircleOutlineIcon />
</IconButton>
</Tooltip>
)
}
}
Комментарии:
1. как? не могли бы вы привести пример, пожалуйста?
2. Ответ Даниала должен помочь вам решить вашу проблему.
Ответ №1:
Вы можете добавить фрагмент jsx <></>
в каждый оператор if
{canDelete === 1 amp;amp;
<>
{u.status === 'Active' ?
(
<Tooltip>Deactivate</span>} arrow>
<IconButton
className={classes.deactivateButton}
>
<HighlightOffIcon />
</IconButton>
</Tooltip>
):(
<Tooltip>Activate</span>} arrow>
<IconButton
className={classes.activateButton}
>
<CheckCircleOutlineIcon />
</IconButton>
</Tooltip>)
}
</>
}
Ответ №2:
{canDelete === 1 ?
u.status === 'Active' ? (
<Tooltip>Deactivate</span>} arrow>
<IconButton
className={classes.deactivateButton}
>
<HighlightOffIcon />
</IconButton>
</Tooltip>
) : (
<Tooltip>Activate</span>} arrow>
<IconButton
className={classes.activateButton}
>
<CheckCircleOutlineIcon />
</IconButton>
</Tooltip>
)
: (<></>)
}
Что-то в этом роде должно сработать. Вы не должны делать другого {
, это просто способ как бы сбежать от JSX, так что одного достаточно. Теперь вы можете выполнить два внутренних троичных оператора, связанных цепочкой. Это не очень чисто, но должно сработать.