我正在尝试为React中的表实现过滤器功能。基本上,这是一个多选。
这是我的下拉代码
<Select
placeholder='ALL'
style={{ width: '80%', marginBottom: '20px' }}
onChange={(entry) => {
this.setState({ fnselect: entry });
this.onFilteredChange(
entry.map((o) => {
return o.value;
}),
'FirstName'
);
}}
value={this.state.fnselect}
multi={true} // eslint-disable-line
options={this.getOptions('FirstName')}
/>
这是getOptions方法。
getOptions(propertyName) {
return this.state.data.reduce((accum, elem, i) => {
const accumulator = [...accum];
if(!accumulator.some(e => e.value === elem[propertyName])) { // eslint-disable-line
accumulator.push({
id: i,
value: elem[propertyName],
label: elem[propertyName]
});
}
return accumulator;
}, []);
}
基本上this.state.data具有所有字段/下拉列表的值。我想删除所有下拉列表的空字符串值。我不想修改this.state.data。我想在getOptions方法中做到这一点。
我想从getOptions方法中删除该特定过滤器的空白字符串数据。我该如何实现?
为了更加清晰
options={this.getOptions('FirstName')}// Here 'FirstName' is a field name in this.state.data
有人可以帮助我消除下拉列表中的空白字符串吗?
答案 0 :(得分:0)
您可以使用Array.filter
仅保留不为空的字符串。
const arr = ['1', '2', '', '4'];
console.log(arr.filter(Boolean));