Существует проблема github по этому поводу.
Полная ширина
Вы должны использовать свойство alignText
для выравнивания текста и значка. Пример:
<Select className="fullwidth" items={['toto', 'tata']} filterable={false} itemRenderer={renderSelectItem} onItemSelect={this.onCategoryChange.bind(this)} >
<Button text={this.state.category} alignText="left" fill="{true}" rightIcon="caret-down" />
</Select>
Вы должны добавить собственное правило CSS, чтобы выделить всю ширину:
.bp3-popover-wrapper.fullwidth, .bp3-popover-wrapper.fullwidth > .bp3-popover-target {
display:block;
}
Однако , если вы нажмете на кнопку выбора, список не будет отображаться с полной шириной.
Если у вас есть базовый вариант использования, вы можете использовать HTMLSelect вместо Выберите , он имеет желаемое поведение по умолчанию, когда «fill» имеет значение true.
фиксированная ширина
Если вы хотите сделать выбор и фиксированную ширину списка, у вас есть 2 решения:
<Select className="fullwidth" popoverProps={{ portalClassName:"fullwidth" }} items={['toto', 'tata']} filterable={false} itemRenderer={renderSelectItem} onItemSelect={this.onCategoryChange.bind(this)} >
<Button text={this.state.category} alignText="left" fill="{true}" rightIcon="caret-down" />
</Select>
<Select className="fullwidth" popoverProps={{ usePortal: false }} items={['toto', 'tata']} filterable={false} itemRenderer={renderSelectItem} onItemSelect={this.onCategoryChange.bind(this)} >
<Button text={this.state.category} alignText="left" fill="{true}" rightIcon="caret-down" />
</Select>
.bp3-popover-wrapper.fullwidth, .bp3-popover-wrapper.fullwidth > .bp3-popover-target {
display:block;
max-width: 500px;
}
/* with portal */
.bp3-overlay.fullwidth .bp3-select-popover {
width: 500px;
}
/* without portal */
.bp3-popover-wrapper.fullwidth .bp3-select-popover {
width: 500px;
}