Итак, .map
сам по себе предлагает только одно значение, о котором вы заботитесь ... Тем не менее, есть несколько способов решения этой проблемы:
// instantiation
this.state.dataSource
//Using `.map` directlly
this.state.dataSource.map((obj, index)=> {
console.log(obj);
return(
<View />
)
});
// what's built into Map for you
this.state.dataSource.forEach( (val, key) => console.log(key, val) );
// what Array can do for you
Array.from( this.state.dataSource ).map(([key, value]) => ({ key, value }));
// less awesome iteration
let entries = this.state.dataSource.entries( );
for (let entry of entries) {
console.log(entry);
}
Обратите внимание, я использую много новогово втором примере ... ...Array
.from берет любую итерацию (в любое время, когда вы используете [].slice.call( )
, плюс наборы и карты) и превращает ее в массив ... ... Maps, когда приводится в массив, превратить в массив массивов, где el[0] === key && el[1] === value
;(в основном в том же формате, в котором я предварительно заполнил мой пример Map, выше).
Я использую деструктуризацию массива в позиции аргумента лямбды, чтобы присвоить этим точкам массива значения перед возвратомобъект для каждого эл.
Если вы используете Babel, на производстве вам нужно будет использовать браузер Babel Polyfill (который включает в себя «core-js» и «регенератор» Facebook).Я совершенно уверен, что он содержит Array.from
.