我有一个.map()
函数,该函数根据从woocommerce api提取的产品数量返回我要渲染的这些按钮。
我还具有onclick函数,在该函数中,仅应选择一个按钮,然后依次className
进行切换。
但是,通过脚本,我可以选择数组的所有元素。众所周知,我必须将唯一的key={}
传递给函数才能获得所需的结果,但是这样做很麻烦:/这是我的代码,没有尝试https://codesandbox.io/s/018488478p。
我看过之前的这些问题: How to toggle class for the only one element on click in react How to modify only one element in a react .map function? 但由于某种原因,我无法将其复制到我的代码中-这是我的新手,如果可以轻松解决,请原谅我的无知!
当切换非常烦人时,我的div又如何扩展? :( 您认为使用单选按钮更好吗?
答案 0 :(得分:1)
我喜欢这种情况,我喜欢跟踪处于这种状态的选定元素: https://codesandbox.io/embed/rm8n26po1q
更新: 我更新了沙箱,不包含ID,以及其他一些改进
答案 1 :(得分:0)
好像您正在尝试读取产品的ID,但是您从未设置其ID。为每个产品添加id属性
答案 2 :(得分:0)
在您的状态下,将showL1设置为true或false,这意味着它们都将获得样式。在handleSelectL1中,应将状态为“ selectedItemId”或类似状态的键设置为传入的ID。然后在className中,可以使用className={this.state.selectedItemId === p.id ? "selectedRBox" : "selectorRBox"