【发布时间】:2021-05-31 06:10:45
【问题描述】:
我是 reactjs 和 javascript 的新手。当我单击字母表时,我有从 A 到 Z 的按钮列表,按钮的背景颜色应该改变。我试过下面的代码
getBrandSortData(){
return(
<div className="BrandPageList_AlphabetContainer">
<button value="all" className="BrandPageList_AllButton" onClick={this.handleClick}>All</button>
{brandList.map((item,index) =>
{
let disbaled = !this.isBrandCharacterAvailable(item)
return(
<button
disabled= {disbaled}
value={item}
key={index}
block="BrandPageList_AlphabetButtons"
// mods = {{enabled : !disbaled}}
onClick={this.handleClick}
>
{item}
</button>
)}
)}
</div>
)
}
handleClick = event =>{
const brandValues = event.target.value
if(brandValues === "all"){
brandValues.style.backgroundColor = '#393939'
return this.setAllBrands()
}
else{
let brandSortDataByCharacter = this.state.brandSortData[brandValues]
this.setState({
allBrands:
{
[brandValues]: brandSortDataByCharacter
},
})
}
}
我无法更改背景颜色。如何解决这个问题。上面的代码是写在一个组件里面的。
【问题讨论】:
-
event.target指的是元素本身。event.target.value指的是它的valueproperty。您应该能够从中找出错误的地方 -
你也可以使用
state或useRefhook -
@kunalpanchal 如何处理状态
标签: javascript reactjs ecmascript-6