Home > Net >  React Typescript: Ant Design Table with Dropdown Column pass Record to function
React Typescript: Ant Design Table with Dropdown Column pass Record to function

Time:12-31

Following Column:

{ title: "Action", render: (record: ToDoClass) => { //<- this record
   return (
      <Dropdown overlay={menu}>
         <Button>
            User <DownOutlined />
         </Button>
      </Dropdown>
   )
}},

has the menu:

const menu = (
   <Menu onClick={updateUser}>
      <Menu.Item key="0" />
      <Menu.Item key="1">User 1</Menu.Item>
      <Menu.Item key="2">User 2</Menu.Item>
   </Menu>
);

must call the function: updateUser with the parameter record from the columns and key from the menu:

const updateUser = ({ key }: { key: React.Key }): void => { //<- need record here
   console.log(key);
};

CodePudding user response:

Based on the documentation, the onClick prop takes a function that takes an object { item, key, keyPath, domEvent }. You can try changing your _updateUser and menu to something like this:

<Menu onClick={this._updateUser}>
...
private _updateUser = ({ item, key }: { item: ToDoClass, key: any }): void => {
   console.log(item, key);
}

Here is an example I created based on your code. Note the difference on how onClick is assigned. Also, since item is circular, it will crash the browser when it is printed.

  • Related