2016-02-10 3 views
3

У меня есть некоторые проблемы, когда я пытаюсь ссылаться на входы как массивы в React with Redux.Использование 'ref' как массив в React

В приведенном ниже коде представлена ​​одна панель в каждой статье в массиве.

var articles = this.props.item.array.articles.map((article, index) => { 
    return <Panel key={index} header={'Article ' + index}> 
     <Input type='select' ref='id' label='Article' defaultValue={article.id} > 
      {articles} 
     </Input> 
    </Panel> 
}) 

Я пытаюсь построить рефов так, чтобы они в виде массива, который не представляется возможным в данный момент. Array of references. #1899

Я думаю, я мог бы решить эту проблему путем создания своего рода ref="article["+counter+"][id]"

Но это ужасное решение, и я действительно не хочу идти по этому пути.

JSON массив ниже будет мой желаемый формат для рефов:

"articles": [ 
     { 
      "_joinData": { 
       "price": "100", 
       "quantity": "50" 
      }, 
      "id": "05f54207-fb6f-40b5-820e-26059a803343" 
     }, 
     { 
      "_joinData": { 
       "price": "200", 
       "quantity": "70" 
      }, 
      "id": "05f54207-fb6f-40b5-820e-26059a803343" 
     } 
] 

Индекс цен & количество будет больше 2 входа.

Который я решил не включать в пример кода.

Хорошее решение этой проблемы было бы очень оценено.

+0

Вопрос не ясен. 'this.refs' - это' String'-keyed 'Object', а не« массив JSON » –

+0

Нет, это не так, и я имел в виду, что мой желаемый результат для индекса статей был бы json-массивом в указанном формате. – JazzCat

+0

Как этот массив связан с 'refs'? –

ответ

2

Я считаю, что вы можете перебирать this.refs, как массив, используя Object.keys.

Ex. Object.keys(this.refs).forEach(key => func(this.refs[key]))

Для запуска func функция для каждой ссылки.

+0

это может быть просто: Object.values ​​(this.refs) –