gpt4 book ai didi

reactjs - 如何设置 react 表过滤器输入字段的样式?

转载 作者:行者123 更新时间:2023-12-03 13:29:32 24 4
gpt4 key购买 nike

我正在使用 react-table 并为每个有效的列提供一个过滤方法。然而,我似乎无法弄清楚我实际上如何设计过滤器输入字段的样式 - 它现在是白色的并与背景融为一体。

这是一个代码笔,其中“姓氏”列是可过滤的,并带有一个输入字段:https://codepen.io/anon/pen/QgOdOp?editors=0010

我想向此输入字段添加一些语义样式,例如:

                    <div className="ui icon input">
// Input values would go here
<i className="search icon" />
</div>

但我似乎不知道如何将输入值绑定(bind)到列本身。

我已在特定列中尝试了以下操作,但它没有呈现任何内容:

{
Header: 'Last Name',
filterable: true,
id: 'lastName',
accessor: d => d.lastName
Filter: Cellinfo => (
<div className="ui icon input">
<select onChange={event => onFiltersChange(event.target.value)} value={filter ? filter.value : ''}></select>
<i className="search icon" />
</div>
)
}

最佳答案

这可以通过纯 CSS 来完成。为表指定一个 idclass,然后定位输入并根据需要设置它们的样式。

<ReactTable 
showFilters={true}
data={makeData()}
columns={columns}
className='react-table'
/>

.react-table input {
background-color: black;
color: white;
}

更好的选择是使用react-table的内置Filter列选项来为过滤器定义自定义UI。这记录在 Custom Filtering example 中。这允许您传递 style 对象。

const columns = [
{
Header: 'Name',
columns: [
{
Header: 'First Name',
accessor: 'firstName',
},
{
Header: 'Last Name',
filterable: true,
id: 'lastName',
accessor: d => d.lastName,
Filter: ({filter, onChange}) => (
<input
onChange={event => onChange(event.target.value)}
value={filter ? filter.value : ''}
style={{
width: '100%',
backgroundColor: 'gray',
color: 'white',
}}
/>
),
},
],
},
{
Header: 'Info',
columns: [
{
Header: 'Age',
accessor: 'age',
},
],
},
];

使用它,您可以定义背景图像来实现您想要的图标。或者您可以传入一个自定义组件,该组件在输入后面设置一个图标元素。像这样的事情:

Filter: ({filter, onChange}) => {
return (
<div style={{position: 'relative'}}>
<input
onChange={event => onChange(event.target.value)}
value={filter ? filter.value : ''}
style={{
width: '100%',
backgroundColor: 'transparent',
color: '#222222',
}}
/>
<i style={{position: 'absolute', right: '10px', lineHeight: '30px'}}>
Icon
</i>
</div>
)
);

关于reactjs - 如何设置 react 表过滤器输入字段的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44774468/

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