Rio JS Ternary для условного события onClick

Я хочу условно назначить обработчик событий в теге бунта... поэтому я попробовал следующее:

<ul>
    <li class="email__ {active--: showEmail} {disabled--: !hasEmailMsg}"
        onClick={hasEmailMsg: handlePreviewChange('email')}
    ></li>
    <li class="mobile__ {active--: showMobile} {disabled--: !hasMobileMsg}"
        onClick={hasMobileMsg: handlePreviewChange('mobile')}
    ></li>
</ul>

Но думает что hasEmailMsg / hasMobileMsg функции обратного вызова... есть идеи, как этого добиться?

1 ответ

Решение

Я не использовал Riot.js, но, похоже, вы не используете обычный троичный синтаксис JavaScript. Вы пробовали синтаксис вроде:

<li class="email__ {active--: showEmail} {disabled--: !hasEmailMsg}"
        onClick={hasEmailMsg ? handlePreviewChange('email') : doNothing }
></li>

где doNothing это просто функция, которая.. ничего не делает. (Предполагая, что это поведение, которое вы хотите).

Я не знаком с вашей точной настройкой, но я попытался сделать короткую демонстрацию с использованием JSFiddle здесь: https://jsfiddle.net/jonahe/hfu52x0s/ где я получил троичную функциональность. У вас, вероятно, больше шансов, чем у меня, увидеть параллели с вашим кодом.

Другие вопросы по тегам