2016-05-18 2 views
3

Я использую компонент Table в новейшей версии пользовательского интерфейса Material, и я не уверен, как я должен получать данные из строки таблицы при ее выборе.Получение данных из компонента TableRow в пользовательском интерфейсе материалов

В документации упоминается опорный элемент для компонента Table, называемый onRowSelection, но он дает вам только строку RowNumber для строки, которая была выбрана, и ничего больше.

Как вы вообще можете использовать это? Я не понимаю, как вы собираетесь захватить, скажем ... ключевую опору, которая установлена ​​на TableRow, используя только опору RowNumber того же TableRow.

код ниже показывает, как я рендеринга саму таблицу, и назначение ключа:

handleSelect(id) { 
    console.log(id); 
    this.props.dispatch({ type: 'SET_SELECTED_USER', user: id }); 
} 

renderUsers() { 
    if (this.props.users && this.props.currentUser) { 
    const currUser = this.props.currentUser.username; 
    const userList = this.props.users.map((user) => { 
     if (currUser !== user.username) { 
     return (
      <TableRow key={user._id}> 
      <TableRowColumn>{user.username}</TableRowColumn> 
      <TableRowColumn>{user.roles[0]}</TableRowColumn> 
      </TableRow> 
     ); 
     } 
    }); 
    return userList; 
    } 
} 

Я просто не понимаю, как RowNumber из строки выбирается должна помочь мне вообще, когда Мне нужно получить доступ к их ключу в строке.

Любая помощь была бы действительно оценена! Благодаря!

Документы для таблицы: http://www.material-ui.com/#/components/table

+0

это тот же вопрос ответил здесь? http://stackoverflow.com/questions/36656447/react-material-ui-table-cant-get-element-from-row – Marc

+0

В некотором смысле, я думаю ... но моя проблема заключается в том, что, вопреки тому, как на этот вопрос ответ, подсказка 'key' - это не то, что используется для идентификации строки, выбранной при использовании' onRowSelection'. Вместо этого некоторое свойство abringrary 'rowNumber' автоматически генерируется' Table' и используется, что совсем не помогает, когда мне действительно нужно, чтобы он использовал подсказку 'key', как было предложено этим вопросом/ответом. – MisutoWolf

+0

Вы можете заполнить значение ключа тем, что хотите. Посмотрите на карту создания строки в примере в этом связанном вопросе/ответе. Вы можете даже ссылаться на полный объект. Это помогает? –

ответ

4

Вы можете использовать номер строки в качестве индекса в массиве пользователей (this.props.users):

handleSelect(userIndex) { 
    const currUser = this.props.currentUser.username; 
    const users = this.props.users.filter(user => user.username !== currUser) 
    this.props.dispatch({ type: 'SET_SELECTED_USER', user: users[userIndex].id }); 
} 
+0

Я обязательно дам этот снимок сегодня вечером и отчитаюсь с результатами! – MisutoWolf

+0

Сегодня, тестируя этот код, это прекрасно работает. Большое спасибо, ответ был принят точно! Еще раз спасибо! – MisutoWolf