Динамический контент в компоненте Диалог
Здравствуйте, я пытаюсь сделать просмотр данных с компонентом простого реагирования в диалоге с динамическим размером фотографии. По умолчанию всплывающее окно с полосой прокрутки и в центре экрана. Как сделать это с динамическим размером и без полосы прокрутки и в верхней части экрана.
Я пытался использовать максимальный / минимальный рост и вес, но результата нет. Найдено: "Динамическое содержимое может перемещать границы диалогов за пределы области просмотра. Распространенным решением является определение максимальной высоты с помощью contentStyle, чтобы более длинный контент отображал полосу прокрутки". от https://www.primefaces.org/primereact/ Но как это реализовать.
<Dialog header="Client Details"
visible={this.state.visible}
modal={true}
onHide={() => this.setState({visible: false})}>
{this.renderClientDialogContent()}
</Dialog>
renderClientDialogContent() {
if (this.state.selectedClient) {
return (
<div className="p-grid" style={{fontSize: '16px', textAlign: 'center', padding: '20px', maxHeight:'800px', maxWidth:'700px', minWidth:'300px'}}>
<div className="p-col-36" style={{textAlign: 'center'}}>
<img src={this.state.selectedClient.bigPhotoLink}
alt={this.state.selectedClient.name} />
</div>
<div className="p-col-12">{this.state.selectedClient.name}</div>
<div className="p-col-12">{this.state.selectedClient.description}</div>
</div>
);
}
else {
return null;
}
}
1 ответ
Просто передайте contentStyle
объект с желаемым max-height
(так же, как вы делаете с style
атрибуты):
<Dialog
contentStyle={{ maxHeight: "300px" }}
header="Client Details"
visible={this.state.visible}
modal={true}
onHide={() => this.setState({visible: false})}
>
{this.renderClientDialogContent()}
</Dialog>