【问题标题】:Open Select without click on child component打开选择而不点击子组件
【发布时间】:2021-12-19 15:30:05
【问题描述】:

我想知道如何在不使用用于呈现选择的子组件上的 click 方法的情况下打开Select from blueprint

<UserSelect
    items={allUsers} popoverProps={{ minimal: false }}
    noResults={<MenuItem disabled={true} text='No results.' />}
    itemRenderer={renderUser}
    itemPredicate={filterUsers}
    onItemSelect={(item,ev)=>{onItemSelectHandler(item,ev);} }>
    <p ref={usersDropdownRef} > click me test</p>
</UserSelect>

我想在 UserSelect 中设置一个类似 isOpen = {myVar} 的道具,而不是使用 点击段落,如果 isOpen 无法通过道具获得,我该如何实现类似的解决方案?

【问题讨论】:

  • 是否可以选择使用 React 提供程序或某些全局存储或全局状态管理库来共享 usersDropdownRef?如果是,您可以在仍然使用 ref 的同时隐藏段落(显示:none)元素,并从其他一些组件访问 ref,然后访问 usersDropdownRef.current.click()
  • 我不想使用 click 事件,这也导致了我与其他嵌套事件的问题,感谢您的建议
  • 好的,还有其他事件可以使用并以编程方式触发吗?通常,打开/关闭应该由状态变量确定,所以我不明白为什么 props 不是一个选项?也许问题出在其他地方
  • 没错组件isOpen中有一个状态变量,我就是无法访问github.com/palantir/blueprint/blob/…

标签: reactjs typescript blueprint


【解决方案1】:

使用 popoverProps={{ isOpen: true }}

控制底层 Popover

【讨论】:

    猜你喜欢
    • 2015-12-15
    • 2014-01-05
    • 2019-04-29
    • 2013-08-22
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多