reactjs - 禁用 Office UI Fabric React DetailsList 中的行

标签 reactjs typescript office-ui-fabric

我正在尝试有条件地禁用 OUIF DetailsList 中某些行上的鼠标单击事件。但我似乎无法让它发挥作用。我尝试覆盖 onRenderRow 并将 CheckboxVisibility 设置为无,但它仍然可以点击。然后我尝试在它周围包裹一个 div 并将其设置为禁用。但是,React 中的 div 似乎没有 disabled 属性。那么有人可以帮我吗?

<DetailsList
    items={this.state.items}
    columns={this.getColumns()}
    selection={this.selection}                    
    selectionMode={SelectionMode.multiple}
    onRenderRow={this.renderRow.bind(this)}>
</DetailsList>

private renderRow(props: IDetailsRowProps, defaultRender: any){
    let state = this.state.items[props.itemIndex].workflowState;
    if(state === "disabledState"){
        //props.checkboxVisibility = CheckboxVisibility.hidden; <- Not working
        // return <div disabled={true}>{defaultRender(props)}</div> <- Not working
        return defaultRender(props);
    }
    else{
        return defaultRender(props);
    }
}

解决方法:

this.selection = new Selection({ canSelectItem: this.canSelectItem.bind(this), onSelectionChanged: this.clickRow.bind(this) });

<DetailsList
    items={this.state.items}
    columns={this.getColumns()}
    selection={this.selection}                    
    selectionMode={SelectionMode.multiple}
    onRenderRow={this.renderRow.bind(this)}>
</DetailsList>

private canSelectItem(item: any): boolean {
    return item.state !== "disabledState";
}

最佳答案

好的,我可以再次回答我自己的问题。 Selection 对象确实有一个 canSelectItem 函数来检查用户是否应该能够选择某些项目。此函数应返回一个 bool 值,它从数组中获取当前选定的项目,以便您可以轻松检查值。我用解决方案编辑了上面的代码。

关于reactjs - 禁用 Office UI Fabric React DetailsList 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45717136/

相关文章:

javascript - Reactjs触发onClick函数而不点击功能组件

typescript - 返回另一个函数的函数的返回类型是什么

reactjs - Office UI Fabric React 图标未与 Gatsby 一起显示

node.js - "Cannot find module"在 node.js 上运行单元测试时 react 为公共(public)包中的对等依赖

javascript - 在 React 前端渲染 Node.js 服务器数据

reactjs - 在react-router-v4中使用全局NoMatch组件嵌套Switch组件

javascript - 开始使用 aor-permissions(admin-on-rest 权限)

javascript - 如何等待在 map 内解决的 promise ?

javascript - 在提交时将选中的复选框的值保存在数组中 Ionic

reactjs - 如何在 react 中删除或处理图标被重新注册的警告?