javascript - Ant Design Dropdown - 访问子菜单中的 props 值 [ React ]

标签 javascript reactjs antd react-props

我有一个帖子列表,例如 Facebook feed,每个帖子都有一个带有“编辑、删除、报告”的下拉菜单。

我使用 Ant Design UI,问题是我无法访问子菜单中的 props 值“DeleteId”。

但我可以访问组件内的 props 值 (deleteId)。

根据 Ant Design here ,子菜单(menu)是在组件外部声明的。

Codepen Demo

//-------------- Outside Component --------------------

const onClick = function (info) {
  console.log(info)
};

const menu = (
  <Menu onClick={onClick}>

    { 
     // this.props.deleteId  <=== this doesn't work, props value is "undefined"
    }

    <Menu.Item key="1">Edit</Menu.Item>
    <Menu.Item key="delete-Id-here">Delete</Menu.Item>
    <Menu.Item key="3">Report</Menu.Item>
  </Menu>
);

//-------------- Inside Component --------------------

class Demo extends React.Component {
   render(){

     console.log("deleteId = "+ this.props.deleteId +" ( Inside component ) ")
// this.props.deleteId  <=== This props value works fine, I can access all props data inside component

     return (
  <Dropdown overlay={menu}>
       <a className="ant-dropdown-link" href="#">
        <Icon style={{fontSize:24}} type="ellipsis" theme="outlined" />
    </a>
  </Dropdown>
     )
   }
}

ReactDOM.render( <Demo deleteId="123456"/>,
  mountNode);

可能,它不知道子菜单中的“props”值

最佳答案

看来您只是缺少将 Prop 传递给 menu 功能组件。 下面是修改后的代码,用于将 deleteId 作为参数传递给 menu 函数。

const menu = (deleteId) => (
  <Menu onClick={onClick}>
    <Menu.Item key="1">Edit</Menu.Item>
    <Menu.Item key="delete-Id-here">Delete {deleteId}</Menu.Item>
    <Menu.Item key="3">Report</Menu.Item>
  </Menu>
);

演示

class Demo extends React.Component {
  render(){
    return (
      <Dropdown overlay={menu(this.props.deleteId)}>
        <a className="ant-dropdown-link" href="#">
          <Icon style={{fontSize:24}} type="ellipsis" theme="outlined" />
        </a>
      </Dropdown>
     )
  }
}

关于javascript - Ant Design Dropdown - 访问子菜单中的 props 值 [ React ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52312620/

相关文章:

reactjs - create-react-app 中的 css 模块 localIdentName

css - FlatList 之前的元素固定在页面上,不会随 FlatList 滚动

antd - Ant-Design Table > 如何禁用分页并显示所有记录

javascript - ant design 中的异步表单字段验证

javascript - 使用 XMLHttpRequest 继续收到 No 'Access-Control-Allow-Origin' 错误

javascript - 像 Babel 这样的转译器在本身不支持的情况下如何实现尾调用优化?

javascript - 对作为 props 传递的函数点击使用react,HOC 会被执行多次

javascript - 如何在 React 中删除 Ant design Tabs 组件的焦点边框?

javascript - 使用 JQuery Mobile 的谷歌标签管理器

asp.net - 从 Outlook 中的网页发送文件