reactstrap:如何使下拉菜单的大小填满所有可用的 space

reactstrap : how to make dropDown menu's size fill all of the available space

我正在使用 reactstrap dropdown component 如下:

              <Dropdown 
                isOpen={this.state.dropdownOpen[3]}
                toggle={() => {
                  this.toggle(3);
                }}
                className="mb-10" 
              >

                <DropdownToggle caret> {this.state.dropDownValue}</DropdownToggle>
                <DropdownMenu>
                  <DropdownItem >  <div onClick={this.changeValue}>operateur_sav</div></DropdownItem>
                  <DropdownItem >  <div onClick={this.changeValue}>agent_support_tel</div></DropdownItem>
                  <DropdownItem >  <div onClick={this.changeValue}>agent_magasin</div></DropdownItem>
                </DropdownMenu>
              </Dropdown>

结果如下:

这是所有表单的代码:

 <Form noValidate onSubmit={this.onSubmit}>
          <FormGroup>
            <InputGroup>
              <InputGroupAddon addonType="prepend">
                <InputGroupText>Nom</InputGroupText>
              </InputGroupAddon>
              <Input
                type="text"
                id="nom"
                name="nom"
                value={this.state.nom}
                onChange={this.onChange}
              />
              <InputGroupAddon addonType="append">
                <InputGroupText>
                  <i className="fa fa-user"></i>
                </InputGroupText>
              </InputGroupAddon>
            </InputGroup>
          </FormGroup>
          <FormGroup>
            <InputGroup>
              <InputGroupAddon addonType="prepend">
                <InputGroupText>Email</InputGroupText>
              </InputGroupAddon>
              <Input
                type="email"
                id="email"
                name="email"
                value={this.state.email}
                onChange={this.onChange}
              />
              <InputGroupAddon addonType="append">
                <InputGroupText>
                  <i className="fa fa-envelope"></i>
                </InputGroupText>
              </InputGroupAddon>
            </InputGroup>
          </FormGroup>
          <FormGroup>
            <InputGroup>
              <InputGroupAddon addonType="prepend">
                <InputGroupText>Role</InputGroupText>
              </InputGroupAddon>
              <Dropdown
                isOpen={this.state.dropdownOpen[3]}
                toggle={() => {
                  this.toggle(3);
                }}
                className="mb-10"
              >
                <DropdownToggle caret>
                  {" "}
                  {this.state.dropDownValue}
                </DropdownToggle>
                <DropdownMenu>
                  <DropdownItem>
                    {" "}
                    <div onClick={this.changeValue}>operateur_sav</div>
                  </DropdownItem>
                  <DropdownItem>
                    {" "}
                    <div onClick={this.changeValue}>agent_support_tel</div>
                  </DropdownItem>
                  <DropdownItem>
                    {" "}
                    <div onClick={this.changeValue}>agent_magasin</div>
                  </DropdownItem>
                </DropdownMenu>
              </Dropdown>
              <InputGroupAddon addonType="append">
                <InputGroupText>
                  <i className="fa fa-id-badge "></i>
                </InputGroupText>
              </InputGroupAddon>
            </InputGroup>
          </FormGroup>
          <FormGroup>
            <InputGroup>
              <InputGroupAddon addonType="prepend">
                <InputGroupText>Mot de passe</InputGroupText>
              </InputGroupAddon>
              <Input
                type="password"
                id="mot_de_passe"
                name="mot_de_passe"
                value={this.state.mot_de_passe}
                onChange={this.onChange}
              />
              <InputGroupAddon addonType="append">
                <InputGroupText>
                  <i className="fa fa-asterisk"></i>
                </InputGroupText>
              </InputGroupAddon>
            </InputGroup>
          </FormGroup>
          <FormGroup className="form-actions">
            <Button type="submit" size="sm" color="primary">
              Créer
            </Button>
          </FormGroup>
        </Form>

我一直在寻找使 下拉菜单 'role' 与其他 输入元素 占用相同大小的方法] 这样所有表格行的宽度都将相同。
我的研究使我找到了 2 种解决方案,其中 none 有效:
解决方案 1:**
由于在 reactstrap 中:The DropdownToggle uses the Button component internally, meaning it also accepts all the props the Button component accepts.,我可以像在按钮元素中一样使用 **size
block

  <Button color="primary" size="lg" block>Block level button</Button> 

呈现如下:

所以我补充说:

size="lg" block  

到 Dropdown 元素,但它所做的只是稍微放大下拉菜单的大小。
方案二:
我试图用合理的道具将内部包裹起来:

<ButtonGroup justified>
  <DropdownButton>...</DropdownButton>
</ButtonGroup>

这完全没有区别。
同时使用:

 width: 100%;

没有任何区别?
知道如何解决这个问题吗?

这是您的案例的工作代码 - https://codesandbox.io/s/gracious-payne-b1rv4

有几处是错误的 -

  1. dropdownOpen - 这应该设置为布尔值但被分配给某个数组。
  2. className - 这应该是名称而不是样式。

给 DropdownToggle 元素一个 className 并添加 width: 100% 到那个 className,然后你的下拉菜单应该能够占据整个宽度。