В компоненте DetailsList есть реквизит ( onRenderCheckbox ) для управления отображением всех флажков, но внутри этой функции у вас не будет подробностей соответствующего элемента строки. Таким образом, вам необходимо использовать свойство onRenderCheck компонента DetailsRow, которое можно передать, если вы управляете свойством onRenderRow компонента DetailsList.
Это будет выглядеть примерно так (на основе базового c примера кода DetailsList ):
onRenderRow = (props, defaultRender) => {
// For even rows, override the default checkbox that's rendered
const onRenderDetailsCheckbox = props.itemIndex % 2 === 0 ? this.onRenderCheckbox : undefined;
return defaultRender && defaultRender({...props, onRenderDetailsCheckbox });
}
onRenderCheckbox = (props) => {
return (
<div>
Disabled
</div>
);
}
<DetailsList
onRenderRow={this.onRenderRow}
...
/>
Однако этот пример довольно бессмысленный, поскольку вы все равно можете "выбрать" строку с помощью просто щелкая в любом месте строки, сам флажок ничего не контролирует (реализация по умолчанию - это просто значок , а не умная кнопка).
Возможно, один из этих ответов даст вам какое-то указание на то, что вы на самом деле пытаетесь сделать:
- возиться со строкой selection: Как переключать office-ui-fabri c Выбор строки в списке деталей с использованием всей строки в качестве переключателя вместо простого маленького флажка
- , если вы установите флажок на Smart Checkbox, вам нужно разрешить событию просачиваться, чтобы выбор правильно управлялся: Как заменить флажок из пользовательского интерфейса Fabri c Компонент DetailsList
You также следует прочитать класс Selection , который используется для управления выбором (через selection
prop в DetailsList).