I'm using a Table component in the newest version of Material UI, and I'm not sure how I'm supposed to be acquiring data from a Table's row when it's selected.
The documentation mentions a prop for the Table component called onRowSelection
, but it only gives you a RowNumber for the row that was selected, nothing else.
How are you supposed to make any use of this at all? I don't understand how you're meant to grab say...the key prop that's set to the TableRow
using nothing but the RowNumber prop of that same TableRow
.
Code below shows how I'm rendering the table itself, and assigning the key:
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;
}
}
I just don't understand how the RowNumber of the row being selected is supposed to help me whatsoever, when I need to access they key of the row instead.
Any assistance would be really appreciated! Thanks!
Docs for Table: http://www.material-ui.com/#/components/table
That's how to use the Table widget in Flutter. Basically, you need to create a list of TableRow and pass it as the children argument. You can also pass other arguments to customize the style of the Table .
Material UI provides developers with material-based UI components. They help save some time on design and app development. But since Material UI is mostly a set of UI components, it doesn't offer such a great boost to the development speed as Bootstrap does.
What you need to do is include a renderCell method in your columns array. In the above I am rendering a Button inside columns 5 and 6 which will appear on every populated row. Above that you can have a function which creates and returns a Button from Material-ui. This should be the default answer.
You could use the row number as an index in your users array (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 });
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With