为了账号安全,请及时绑定邮箱和手机立即绑定

Ant Design (Antd), React js中如何获取Dropdown组件的值

Ant Design (Antd), React js中如何获取Dropdown组件的值

呼唤远方 2023-03-03 19:28:39
我有一个问题,我无法将 Dropdown 的值取出到 setState 或类似的东西。大家都知道怎么修吗?我试图通过 onChange 访问它,但仍然无法正常工作。代码如下:const menu = (    <Menu onSelect={(e) => console.log(e)}>      <Menu.Item>        <a target="_blank" rel="noopener noreferrer">          Recommended        </a>      </Menu.Item>      <Menu.Item>        <a target="_blank" rel="noopener noreferrer">          Newest        </a>      </Menu.Item>      <Menu.Item>        <a target="_blank" rel="noopener noreferrer">          Lowest Price        </a>      </Menu.Item>      <Menu.Item>        <a target="_blank" rel="noopener noreferrer">          Highest Price        </a>      </Menu.Item>    </Menu>  );<Dropdown overlay={menu1} trigger={['click']}>            <a              className="ant-dropdown-link"              onClick={(e) => e.preventDefault()}              style={{ color: '#d46b08', fontWeight: 'bold' }}            >              PRICE <DownOutlined />            </a></Dropdown> ```
查看完整描述

3 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

为了在下拉菜单中获取所选菜单的值,您需要为每个菜单项分配一个键,然后您可以使用组件onClick的 propMenu来获取值或键。


const handleClick = ({key}) => {

  console.log(key)

  //you can perform setState here

}


const menu = (

  <Menu onClick={handleClick}>

    <Menu.Item key="Recommend">Recommend</Menu.Item>

    <Menu.Item key="Newest">Newest</Menu.Item>

    <Menu.Item key="Lowest Price">Lowest Price</Menu.Item>

    <Menu.Item key="Highest Price">Highest Price</Menu.Item>

  </Menu>

);


<Dropdown overlay={menu} trigger={["click"]}>

    <a

      className="ant-dropdown-link"

      onClick={(e) => e.preventDefault()}

      style={{ color: "#d46b08", fontWeight: "bold" }}

    >

      PRICE <DownOutlined />

    </a>

</Dropdown>

检查它在这里工作以供参考。



查看完整回答
反对 回复 2023-03-03
?
手掌心

TA贡献1942条经验 获得超3个赞

该Dropdown组件不调用任何onChange属性。它具有onVisibleChange每次“下拉触发器”(悬停、单击、右键单击)完成时都会调用的属性。做这样的事情:


const SomeComponent = _props =>

{

  const [visible, setVisible] = React.useState(false);

  

  return (<Dropdown overlay={menu} visible={visible} onVisibleChange={isVisible => setVisible(isVisible)} >

    <a className="ant-dropdown-link" onClick={e => e.preventDefault()}>

      Hover me <DownOutlined />

    </a>

  </Dropdown>);

}


查看完整回答
反对 回复 2023-03-03
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

您可以使用以下内容:


export const items = [

  {

    label: "View Profile",

    key: "view-profile",

  },

];

  const handleDropdownItemClick = (e) => {

    console.log(e.key);

  };

 <Dropdown

            menu={{

              onClick: handleDropdownItemClick,

              items: items,

            }}

            placement="bottomRight"

            className="text-white"

          >

            <a>

              <Space>

                <DownOutlined />

              </Space>

            </a>

  </Dropdown>


查看完整回答
反对 回复 2023-03-03
  • 3 回答
  • 0 关注
  • 481 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信