用选定属性反应.map

时间:2018-12-14 03:27:20

标签: javascript arrays reactjs object

我需要使用具有特定属性的地图来显示元素。

我的代码显示所有项目对象的属性。

const {report, info} = this.state;
const max = this.state.info.map((info, index) =>
    <DonateReport key={index} title={info.title} opened={info.opened}
                  onClick={() => this.toggleInfo(index)}>
        {report.map(({item}) => ( //<--HERE
                <h2 >{item.donaters_count}</h2>
    ))}
    </DonateReport>
);

请告诉我如何显示具有以下参数的属性:item.month == info.key 也许还有办法解决这个问题...

非常感谢您的帮助。请不要发誓,第二天我真的在解决这个问题

2 个答案:

答案 0 :(得分:0)

如果您展示自己想做的事情,我认为这会有所帮助。 我了解您正在尝试根据月份过滤显示的属性。我可能是错的

const {report, info} = this.state;
const max = this.state.info.map((info, index) =>
    <DonateReport key={index} title={info.title} opened={info.opened}
                  onClick={() => this.toggleInfo(index)}>
        {report.filter((item) => item.month == info.key).map(({item}) => ( 
                <h2 >{item.donaters_count}</h2>
        ))}
    </DonateReport>
);

答案 1 :(得分:0)

我用过ternary operator并格式化了DonateReport组件。它应该为您工作。让我知道。

 <DonateReport key={index} title={info.title} opened={info.opened}
                        onClick={() => this.toggleInfo(index)}>
                        {
                            report.map(item => this.state.info.key === item.month ? //<--HERE
                            <h2 >{item.donaters_count}</h2>
                            : null)
                        }
                    </DonateReport>