小编Sta*_*tan的帖子

React 中的多个过滤器

我正在构建一个项目,该项目显示来自 api 的一些数据,现在我需要对其进行过滤。

我已经完成了类别过滤器,现在我必须做一个价格范围过滤器,以便这两个过滤器可以一起工作,但我正在努力如何正确地做到这一点。对于价格范围过滤器,我使用 2 个输入和一个提交按钮。

我得到了一组对象,看起来像这样;

filterData = [
  { name: 'Aang', bender: 'yes', nation: 'Air', person: 'yes', show: 'ATLA', price: 132342 },
  { name: 'Appa', bender: 'yes', nation: 'Air', person: 'no', show: 'ATLA', price: 1322 },
  { name: 'Asami', bender: 'no', nation: 'Republic City', person: 'yes', show: 'LOK', price: 132342 },
  { name: 'Azula', bender: 'yes', nation: 'Fire', person: 'yes', show: 'ATLA', price: 12342 }, etc]
Run Code Online (Sandbox Code Playgroud)

我有状态:

state = {
        data: [],
        nation: '',
        priceStart: '',
        priceEnd: '' …
Run Code Online (Sandbox Code Playgroud)

javascript json object filter reactjs

2
推荐指数
1
解决办法
4577
查看次数

React - 在组件状态下向数组内部的对象添加属性

我正在获取状态中的对象数组,并且尝试为每个对象添加一个属性。
问题是我可以看到我的属性被添加到每个对象中,但是当我映射所有这些对象并尝试console.log它时,我得到了undefined

添加属性

addFavourites() {
        let data = this.state.data.map((e) => {
            e.favourite = false;
            return e;
        });
        return data;
    }
Run Code Online (Sandbox Code Playgroud)
state = {
        data: []
    }
Run Code Online (Sandbox Code Playgroud)

addFavourites 在这里被调用:

getItem = () => {
        this.service
            .mergeData()
            .then((body) => {
                this.setState({
                    data: body
                },
                () => {
                    this.addFavourites();
                },
                () => {
                    this.dataToFilter();
                });
            });
    }

    componentDidMount(){
        this.getItem();
    }
Run Code Online (Sandbox Code Playgroud)

在渲染功能中,我可以看到所有对象,包括最喜欢的对象

console.log(data.map((e) => e));
Run Code Online (Sandbox Code Playgroud)

但这给出了一个未定义的数组

console.log(data.map((e) => e.favourite));
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

javascript arrays json reactjs

1
推荐指数
1
解决办法
5875
查看次数

标签 统计

javascript ×2

json ×2

reactjs ×2

arrays ×1

filter ×1

object ×1