首页 > 解决方案 > 搜索从数据集中设置 ID 的元素

问题描述

我正在尝试根据调用的 onclick 函数使项目可见/不可见,但是我收到“未处理的拒绝(TypeError):无法读取 null 的属性'样式'”

我的代码如下:

      <div>
        {output.map((group) => (
          <div className="sidebar">
          <div className="groupbutton" onClick={item_open({group})}>{group}</div>
          <div>
            {this.state.items.filter(item =>  item.GroupDesc === group).map((items) => (
            <div className="itembutton" style={{display:'none'}} id={group}>{items.TypeDesc}</div>))}
          </div>
        </div>))}
      </div>

有一个功能

function item_open(group) {
  document.getElementById(group).style.display = "block";
}

我认为这些应该:

- 为组中的所有项目提供组名的 id

- 该函数应使用 getElementById 调用所有这些项目

- 然后他们应该都得到 display: "block" 属性

谁能明白为什么这可能行不通?

标签: javascriptreactjs

解决方案


这会起作用:onClick={item_open(group)}因为你已经放了大括号,所以你放里面的任何东西都将被解释为 javascript 代码


推荐阅读