在将vue组件迁移到React时,我不明白如何在同一个div标签中应用这些多个类。
在Vue中,
<ul>
<li v-for="m in Menus" @click="moveMenu(m)" class="primaryClass"
:class="{'ur-primay__selected':selectedMenu(m)}"> // selectedMenu() is a method
{{m.name}}
</li>
</ul>
我的问题是,如何将这个额外的非道具类属性添加到React中的标记中?
我尝试过使用templateliteral来添加类,但无法做到这一点。
classnames
实用程序在React中具有相同的用途,它接受类似于Vue类绑定的输入,并允许混合字符串、数组和对象。
在Vue:
<li :class="['primaryClass', {'ur-primay__selected': selectedMenu(m)}]">
在React中,数组可以被展平,因为它可以向助手提供多个参数:
<li className={classnames('primaryClass', {'ur-primay__selected': selectedMenu(m)})}>
使用带回溯标记的字符串模板`:
<div className={`${selectedMenu(m)?'ur-primay__selected':''}`}>