反应for-in循环和地图

时间:2017-09-22 11:23:45

标签: reactjs loops return for-in-loop array.prototype.map

我正在开发一个反应应用程序,我正面临一个问题,所以如果有人可以,我真的很感激一些帮助。

我按日期对数据进行分组,我有一个对象,其中包含此格式{dd/mm/yyyy:[data,data], dd/mm/yyyy:[data,data]}的数据。

所以我在for循环中循环遍历对象然后一个map循环遍历数组然后渲染它们,但它似乎停止渲染第一个键值对,我假设这是因为在地图之前的return语句,但渲染函数似乎没有它。

这是我的代码,非常感谢任何帮助。

谢谢!

  export default class ExpenseMain extends React.Component{

    renderStuff(){
        var expenses = this.props.expenses
        if(Object.keys(expenses).length > 0){
            for(var key in expenses){
                return expenses[key].map((ele,i)=>{
                    return (
                        <div    
                            className = "expensesLoop"
                            key = {i}>
                            <ExpenseItem 
                                expense  = { ele }
                                removeExpense = { this.props.removeExpense }
                                updateExpense = { this.props.updateExpense }
                            />
                            <hr/>
                        </div>
                    )

                })
            }
        }
    }
    render(){
        return <div>{this.renderStuff()} </div>
    }
}

1 个答案:

答案 0 :(得分:0)

for不会返回任何内容。因此,结果将是undefined

尝试使用Object.keys().map

        Object.keys(expenses).map(key => {
            return expenses[key].map((ele,i)=>{
                return (
                    <div    
                        className = "expensesLoop"
                        key = {i}>
                        <ExpenseItem 
                            expense  = { ele }
                            removeExpense = { this.props.removeExpense }
                            updateExpense = { this.props.updateExpense }
                        />
                        <hr/>
                    </div>
                )

            })
        }