4

当我单击下拉菜单中的 MenuItem 时,我只是想将文本输出到控制台。谁能发现我做错了什么?除了文档中的示例组件之外,关于这个主题没有太多帮助。

 itemRenderer(item) {
    return (
      <MenuItem
        key={item.id}
        label={item.year}
        text={item.season}
        shouldDismissPopover={true}
      />
    )
  }

  handleclick(item) {
    //this never runs :(
    console.log('clicked')
  }

  render() {
    return (
      <Select
        items={this.state.semesters}
        filterable={false}
        itemRenderer={this.itemRenderer}
        onItemSelect={this.handleclick}
      >
        <Button text={'Select a Semester'} rightIcon="caret-down" />
      </Select>
    )
  }
4

1 回答 1

8

您应该在每个上添加一个点击处理程序MenuItem

  itemRenderer(item, {handleClick}) {     // added {handleClick} argument
    return (
      <MenuItem
        key={item.id}
        label={item.year}
        text={item.season}
        onClick={handleClick}             // added this line
        shouldDismissPopover={true}
      />
    )
  }

查看 CodeSandbox 演示:https ://codesandbox.io/s/3rplzz746m (打开控制台)

于 2018-04-22T19:10:02.220 回答