【发布时间】: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