2017-01-04 2 views
0

я создал такой код (и это работает локально в Google Chrome, но не работает на AWS):Ищете замену Object.entries() с ReactJS

parameters: { 
     'forces': 100, 
     'hit': 5, 
     'defense': 5 
    } 
<Parameters params={this.props.parameters}/> 
    //In render method: 
    //console.log(this.props.params); "produces: Object{forces:100, hit:5, defence:5}" 
const bars = Object.entries(this.props.params).map(([key,value]) => { 
    return (
    <ProgressBar 
     key={key} 
     property={key} 
     value={Number(value)} /> 
) 
}); 
return (
    <div className="Parameters"> 
    {bars} 
    </div> 
); 

Основываясь на этой информации: How do I loop through or enumerate a JavaScript object как создать равный код, используя старые моды кода:

const bars = []; 
const obj = this.props.params; 
for (const key of Object.keys(obj)) { 
//console.log(key, obj[key]); 
bars.push() 

} 

«Барсе» массив должны иметь 3 Progress Bar Компоненты ... Я создал этот проект только для собственных образовательных целей и хотел бы изучить различные подходы ,

Ссылка на это приложение: Alex Pilugin: React-Game (он работает в Chrome, а не в Safari)

enter image description here

+0

Почему это не работает на AWS? – hawk

+0

TypeError: Object.entries не является функцией. (В «Object.entries (this.props.params) ... в Safari (и он работает в Google Chrome) - эта проблема в браузере (не AWS) –

ответ

1

замените его на Object.keys, так как Object.entries еще не поддерживается в Safari.

const bars = []; 
Object.keys(this.props.params).forEach(key => { 
    const value = this.props.params[key]; 
    bars.push(
    <ProgressBar 
    key={key} 
    property={key} 
    value={Number(value)} /> 
    ); 
}); 
+0

Спасибо вам большое! Это работает! Все самое лучшее для вас! –

+0

@AlexPilugin приветствуется :) – hawk

0

Object.entries является ES2017 Draft proposal. (Full Doc)

Вам понадобится полипол для поддержки кросс-браузера.

+0

Спасибо. Вы правы. Я понимаю это, но я не знаю, я знаю, как добавить полипол в мой проект или как правильно кодировать на ES2015 ... –

Смежные вопросы