表中的reactJS下拉菜单

法提赫

我在桌上使用下拉菜单。我可以获得注册号。但是,无论打开哪个记录,菜单都会打开,直到记录数为止。

将记录数添加到菜单中。

尽管有4个菜单,但我正在尝试输入条目数增加,但无法解决问题

你能帮助我吗 ?

在此处输入图片说明 在此处输入图片说明

    this.state = {
      table_dropdownOpen: false, //modalform açık mı kapalı mı ?
    };
    this.table_dropdownToggle = this.table_dropdownToggle.bind(this);
    table_dropdownToggle ()  {
       this.setState(prevState => ({
       table_dropdownOpen: !prevState.table_dropdownOpen,
      }));
    };
 render() {
    const { isLoaded, items } = this.state;
    if (!isLoaded) {
      return <div>Loading...</div>;
    } else {
      return (
          <div className={"animated fadeIn container-fluid"}>
            <Row>
              <Col>
                <Card>
                  <CardHeader>
                    <i className="fa fa-align-justify" /> Customer Debt
                  </CardHeader>
                  <CardBody>
                    <Table hover bordered striped responsive size="sm">
                      <thead>
                      <tr>
                        <th width={"10"} />
                        <th width={"15"}>No</th>
                        <th style={{ display: "none" }}>User</th>
                        <th style={{ display: "none" }}>Key</th>
                        <th style={{ display: "none" }}>CreatedUserKey</th>
                        <th width={"40"}>Total debt</th>
                        <th width={"40"}>Received amount</th>
                        <th scope={"row"}>Description</th>
                        <th width={"20"}>Payment Date</th>
                      </tr>
                      </thead>

                      <tbody>

                      {items.map(item => {
                        return (
                            <tr key={item.id}>

                              <td >
                                <ButtonDropdown
                                    isOpen={ this.state.table_dropdownOpen }
                                    toggle={  this.table_dropdownToggle }
                                    onClick={ () => console.log(item.id) } >
                                  <DropdownToggle caret >
                                    Process
                                  </DropdownToggle>
                                      <DropdownMenu>
                                    <DropdownItem >New record</DropdownItem>
                                    <DropdownItem >Print all</DropdownItem>
                                    <DropdownItem>Another Action</DropdownItem>
                                    <DropdownItem divider />
                                    <DropdownItem>Another Action</DropdownItem>
                                  </DropdownMenu>
                                </ButtonDropdown>
                              </td>
                              <td>{item.id}</td>
                              <td style={{ display: "none" }}>{item.user}</td>
                              <td style={{ display: "none" }}>{item.debtKey}</td>
                              <td style={{ display: "none" }}> {item.createduserKey} </td>
                              <td>{item.totalDebt}</td>
                              <td>{item.receivedAmount}</td>
                              <td>{item.description}</td>
                              <td>{new Date(item.paymentDate).toLocaleString()}</td>
                            </tr>
                        )
                      })}
                      </tbody>
                    </Table>
                  </CardBody>
                </Card>
              </Col>
            </Row>
          </div>
      );
    }
  }
}
杰克·卢比

每个下拉列表都与绑定this.state.table_dropdownOpen,因此如果其中一个打开,则它们都是打开的。为了使它起作用,您需要一个状态变量来保存所有打开的值。我会为此使用地图:

this.state = {
      tableDropDownMap: new Map()
};
...
//component did mount, initialize the map
let updatedMap = new Map()
items.forEach(item => updatedMap.set(item.id, false)
...
<ButtonDropdown
  isOpen={ this.state.tableDropDownMap.get(item.id) }
  onClick={ () => console.log(item.id) } >

然后在您的onClick中,您最终会得到类似(自从我使用类组件以来已经有一段时间了,所以setState可能不正确,但是您将获得要点。

onClick={() => {
  let updatedMap = new Map(tableDropDownMap)
  updatedMap.set(item.id, !updatedMap.get(item.id))
  this.setState({tableDropDownMap: updatedMap})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

下拉菜单中的ReactJS表

来自分类Dev

php表中的下拉菜单

来自分类Dev

Reactjs 多重下拉菜单

来自分类Dev

ReactJS-在表格中设置行下拉菜单

来自分类Dev

reactjs下拉菜单关闭打开菜单

来自分类Dev

识别表中的下拉菜单(Python中的Selenium)

来自分类Dev

在Flutter的底部工作表中创建下拉菜单

来自分类Dev

从表中的下拉菜单中选择值

来自分类Dev

Angular 6 表中的自定义下拉菜单

来自分类Dev

在R中的下拉菜单?

来自分类Dev

CSS中的下拉菜单

来自分类Dev

下拉菜单中的项目

来自分类Dev

Java中的下拉菜单

来自分类Dev

Bootswatch中的下拉菜单

来自分类Dev

下拉菜单中的错误

来自分类Dev

DIV 中的下拉菜单

来自分类Dev

下拉菜单中的...具有Bootstrap的下拉菜单

来自分类Dev

基础-下拉菜单中的下拉菜单

来自分类Dev

Bootstrap的下拉菜单中的下拉按钮

来自分类Dev

KeystoneJS中的下拉菜单/子菜单

来自分类Dev

从表数组中选择下拉菜单

来自分类Dev

如何在ReactJS中获得下拉菜单的选定值

来自分类Dev

如何在 reactJS 中自定义 reactstrap 下拉菜单

来自分类Dev

Reactjs 尝试制作下拉菜单,如何不在列表中显示所选列表?

来自分类Dev

下拉菜单中的Bootstrap Long list

来自分类Dev

下拉菜单中的jQuery change事件

来自分类Dev

选择下拉菜单中的选项

来自分类Dev

下拉菜单中重复的角度

来自分类Dev

默认选择下拉菜单中的值