Taro 框架 中 map雙重遍歷 報錯
阿新 • • 發佈:2020-08-17
報錯內容
////////////////////////////
多層迴圈中迴圈的陣列只能是一個變數或成員表示式,可以嘗試把該表示式賦值給迴圈內部的一個新變數
///////////////////////////
第一次遇到這個問題,其實還是研究了半天,沒有整明白說的是什麼意思
這句話報錯的原因是因為
//////////////////////////
雙重 map迴圈中,外層迴圈用的陣列,或者該陣列賦值的變數 ,來源是constructor中的state
然後,內層迴圈中,用到的變數,也是來自constructor中的state
////////////////////////
解決辦法:在第一個map迴圈中,把第二次map需要迴圈的陣列,賦值給一個新的變數.然後內層迴圈直接遍歷該變數
obj = { arr1: [1,2,3,4], arr2: [5,6,7,8] } obj.arr1.map(item=> { const arr2 = obj.arr2 return (<View> // 這裡直接遍歷 obj.arr2 就會提示 上面的文字, 正確的做法是,先吧arr2賦值給一個新的變數, 然後遍歷 該變數 就不會提示這類文字了 arr2.map((item2) => { return (<View>{item2}</View>) }) </View>) })
簡單理解為:Taro ( react ) 雙重 map遍歷,內層遍歷不要直接拿state中的資料,而是在外層遍歷的return之前,把state中的資料賦值給一個變數