我想在防暴标签中有条件地分配事件处理程序...所以我尝试了以下操作:

<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是回调函数...关于如何实现此功能的任何想法?

最佳答案

尚未使用Riot.js,但您似乎没有使用普通的JavaScript三元语法。您是否尝试过如下语法:

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


其中doNothing只是一个不执行任何操作的函数。 (假设这是您想要的行为)。

我不熟悉您的确切设置,但是我尝试在此处使用JSFiddle做一个简短的演示:https://jsfiddle.net/jonahe/hfu52x0s/使三元函数起作用。您可能比我有更好的机会看到代码的相似之处。

关于javascript - riot js三元条件触发onClick事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45846655/

10-10 02:51