Задать вопрос
@ilyaalekseev
изучаю web

Как достать 1 значение из массива в React-е?

Вот у меня есть значения в массиве заказов, там есть товары, имя пользователя и id заказа
var GoodsTable = React.createClass({
 getInitialState: function(){return{goods: []};
},
         render: function(){
	 var itemNodes = this.state.goods.map(function(tableItem){
	 return (<GoodsRow item={tableItem}/>);
	    		});

затем устанавливаем в массиве данные и передаем их на render в GoodsRow, и вот как сделать в GoodsRow если товаров штуки 3, а пользователя нужно написать 1 раз? сейчас код такой
var GoodsRow = React.createClass({
 render: function(){
 	var row = (
<tr>
	<td>{this.props.item.Good_Name}</td>
	<td>{this.props.item.Login}</td>
</tr>);
	 return row;
 }
});
  • Вопрос задан
  • 606 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Не очень понятно, что вы подразумеваете под словом
достать

Может вы хотите сгруппировать товары по пользователям - Пример
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Внесу свою лепту. Буду базироваться на ответе Алексей Зуев :

1. Сделать отдельный компонент для строки с товаром (GoodRow) и строки с товарами пользователя (UserGoodsRow). Все-таки разные вещи.

2. Для всех динамических дочерних компонентов надо добавить свойство key

3. Никогда не называйте поля объекта с большой буквы. Фи. Да и CamelCase предпочтительней, чем SnakeCase

Результат -> jsfiddle.net/yuvuyrhv/11

4. Как вы относитесь к ES6? Вам все равно нужен babel!
jsfiddle.net/yuvuyrhv/13

5. Указывайте propTypes

Ну и напоследок скажу, что логику разбиения продуктов по пользователям НЕОБХОДИМО вынести в отдельный слой (либо в бизнесс ... или, на худой конец в какой-нибудь controller-view вроде UserGoodsPage)

Финальный результат -> jsfiddle.net/yuvuyrhv/14

PS Также рекомендую взять в использование один из инструментов, облегчающих ФП - будь то lodash, underscore или ramdajs
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы