gpt4 book ai didi

reactjs - 在 Office-ui-Fabric 中的 DetailsLists 组件的同一行添加 EDIT 按钮 - ReactJS

转载 作者:行者123 更新时间:2023-12-03 14:13:08 27 4
gpt4 key购买 nike

我对 Office ui Fabric-React 和 React 非常陌生,所以如果我做得完全错误,请毫不犹豫地给我指点。

虽然我的要求相当简单,但我就是无法弄清楚。

我有一个带有 ListView 的页面(office-ui-fabric-reactjs的DetailsList组件),这个DetailsList从工作正常的API端点获取它的项目:

 componentDidMount() {
_items = []

// Get list of Mediums, then push it to the _items array
axiosTRS.get('/media').then(response => {
response.data.map(item => {
_items.push({ id: item.mediumID, name: item.name, imo: item.imo })
})
this.setState({ items: _items })
})
}

详细信息列表正在完美填写。但是,现在我想向每一行添加一个“编辑”按钮,因此这不是单独的列。

我想我应该在渲染 DetailLists 的 onRenderRow 属性上执行此操作:

render() {
return (
<div>
<Panel panelHeaderName={'Medium Overview'}>
<div>
<MarqueeSelection selection={this.selection} >
<DetailsList
onRenderRow={this.onRenderRows}
onRenderDetailsHeader={this.onRenderColumn}
selection={this.selection}
selectionMode={this.state.selectionMode}
onColumnHeaderClick={this.sorting}
onColumnResize={this.columnResizer}
layoutMode={DetailsListLayoutMode.justified}
className='customPanel'
columns={this.state.columns}
items={this.state.items}
// onRenderItemColumn={ this._onRenderColumn }
/>
</MarqueeSelection>
<br />
<div align="right">
</div>
</div>
</Panel>
</div>
)
}

onRenderRows 函数中,我首先获取所有 DetailsRow Prop ,然后添加“编辑”按钮:

onRenderRows(props) {
return (
<div>
<DetailsRow
{...props}

/>
<PrimaryButton
onClick={() => {
alert(props.item.name)
}}
text='click me'
/>
</div>
)
}

问题是该按钮一直显示在包含数据的行下方。我应该通过添加 css 来解决这个问题,还是让按钮位于同一行的最佳选择是什么?

有没有更简单的方法来实现这一点?我还尝试/研究了为按钮添加额外列的选项,但我认为这不是可行的方法,而且我也没有成功。

顺便说一句,我使用 ES6 的结构组件而不是 TSX(您可能已经注意到)。

最佳答案

Add this function
private _onRenderItemColumn(item: any, index: number, column: IColumn): JSX.Element {
if (column.fieldName === 'fieldName') {
return <Link data-selection-invoke={true}>{"Edit"}</Link>;
}
return item[column.fieldName];
}

关于reactjs - 在 Office-ui-Fabric 中的 DetailsLists 组件的同一行添加 EDIT 按钮 - ReactJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50512910/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com