Это несколько сложно, но возможно только с некоторыми опорами и стилем. Элемент, который затеняет остальную часть пользовательского интерфейса, является компонентом Backdrop
компонента Modal
. Drawer
использует Modal
, когда он находится во временном режиме. hideBackdrop
реквизит Modal
контролирует, виден ли оттенок или нет, и вы можете напрямую передать этот реквизит Drawer
.
Однако сам компонент Modal
все равно будет охватить весь видовой экран, не позволяя вам щелкать другие области пользовательского интерфейса до закрытия Drawer
. Я не уверен, есть ли более простой способ, но по крайней мере вы можете сделать это, просто используя стиль CSS, чтобы сделать элемент Modal
«сквозным», установив для pointer-events
значение none
. Чтобы восстановить «кликабельность» самого ящика, вы должны затем установить для его pointer-events
значение all
.
Так, например, просто используйте опору style
для создания простого встроенного стиля:
<Drawer hideBackdrop style={{ pointerEvents: 'none' }}>
<div style={{ pointerEvents: 'all' }}>
I'm a sidebar!
</div>
</Drawer>
Рабочий пример
Если вы работаете с стилевым решением Material UI, вы также можете передать правило стиля pointer-events
собственному Drawer
. Paper
через classes
проп.