我试图改变className的选择对象的Map数组与另一个数组(this.props.notPressAble)
。这是因为我希望数组中的一些对象有另一种CSS样式
handleOptions = () =>{
let array = this.props.options.map((option, i) =>
<a
key={i}
className={classes.dropdownoptions}>
{option}</a>)
for(let x = 0; x < this.props.options.length; x++)
{
if(this.props.notPressAble !== undefined)
{
for(let y = 0; y < this.props.notPressAble.length; y++)
{
if(x == this.props.notPressAble[y])
{
array[x].props.className = classes.dropdownoptionsnotpressable
}
}
}
}
return array
}
下面的代码是我实现类的地方,以便读者更好地理解我的问题
<SideBarContainers name="Planering" notPressAble={[0, 6, 11]}
options={[
"Aktiviteter:",
"+ Ny Aktivitet",
"Visa Alla Öppna",
"Visa Försenat",
"Visa Alla Stängda",
"Visa Alla Kategoriserat",
"Att göra:",
"+ Ny Att göra",
"Visa Alla Öppna",
"Visa Alla Stängda",
"Visa Alla Kategoriserat",
"Personal planering:",
"+ Ny post",
"Visa Alla enkel"
联系我们
问题是array[x].props.className
是一个不能改变的只读值。还有别的办法吗
1条答案
按热度按时间jm2pwxwz1#
为什么要使用for循环来循环选项,然后不使用PressAble。你可以只使用includes函数,然后决定应用哪个类。
如果你仍然想使用你当前的代码,那么你需要克隆你想要改变的元素,然后像下面这样进行修改。