没有。
Ionic 指令filter 也在for loop 之前执行过滤逻辑。所以你可以在渲染之前自己做。
使用 ES6 过滤功能或其他工具。
例如显示奇数
render() {
return(
<View>
{[1, 2, 3, 4, 5]
.filter(value => value % 2 === 1)
.map(value => (<Text key={value}>{value}</Text>))}
</View>
);
}
更进一步,您可以创建一个具有过滤器属性的组件,并实现自定义逻辑。那么你可以像 Ionic 一样使用它。
例如
class FilterNumbers extends Component {
static propTypes = {
numbers: PropTypes.array.isRequired,
filter: PropTypes.func,
};
static defaultProps = {
filter: null,
numbers: [],
};
render() {
var filteredNumbers = this.props.numbers;
if (this.props.filter) {
filteredNumbers = this.props.numbers.filter(this.props.filter);
}
return (
<View>
{filteredNumbers.map(value => (<Text key={value}>{value}</Text>))}
</View>);
};
}
使用它
<FilterNumbers numbers={[1, 2, 3, 4, 5]} filter={value => value % 2 === 1}/>
附言
- 我使用带有数字的数组进行简单演示。您可以使用带有 JSON 和调整逻辑的 Array 来适应它。
- 最好使用ListView显示可迭代数据。