reactjs - 根据输入动态更改列名
问题描述
我正在使用 Office UI 结构详细信息列表组件(https://developer.microsoft.com/en-us/fabric#/controls/web/detailslist)。是否可以根据详细列表的输入更改列标题名称?
我找到了一种方法来更改页脚(https://developer.microsoft.com/en-us/fabric#/controls/web/detailslist/customfooter)但不是页眉,因为 DetailsHeader 中没有 onRenderItemColumn 道具。
有什么帮助吗?
解决方案
DetailsColumn 组件似乎总是呈现列的 name 属性值:https ://github.com/OfficeDev/office-ui-fabric-react/blob/master/packages/office-ui-fabric-react/src/components/DetailsList /DetailsColumn.base.tsx#L122。因此,我认为每次您的“输入”在组件的渲染调用中发生变化时,您都必须动态地重新生成一个新的 IColumn 定义数组。
MyComponent:
state = { replaceSpaces: false, spaceReplacementChar: '_' };
columns = [{ name: 'Column 1', minWidth: 100, ... }];
...
getColumns(state) {
return this.columns.map((column) => {
return {
...column,
name: state.replaceSpaces
? column.name.replace(/\s/g, state.spaceReplacementChar)
: column.name
};
});
}
...
render() {
return (
<DetailsList
columns={this.getColumns(this.state)}
{...this.othertableProps}
/>
);
}
推荐阅读
- ios - 如何将颜色保存到领域并在其他视图控制器中显示颜色?
- sql - 将非规范化 csv 文件导入生产数据库表
- android - 在 Android 上使用 libgdx 加载大量点模型需要大量时间
- java - 通过 Android PDFDocument 生成的 PDF 尺寸太大。在使用 pdfbox 时,它会在输出中剪切图像
- javascript - 如何根据其他标签数组对带有标签的对象数组进行排序?
- php - 语法错误或访问冲突:1066 不是唯一的表/别名:
- javascript - 使用 Append 添加的项目无法被 querySelectorAll 识别
- jquery - 选择 2 Webpack-encore
- javascript - 在javascript Themezy模板中向地图添加标记
- xcode - 在 Xcode 11 中将分支合并到 master 中?