This post is also available in: 日本語 (Japanese)
React.jsで開発していて、Material UIを利用した場合の List と Rightmenu のサンプルコードをメモ代わりに書いています。
もっと良い書き方があるとは思いますが、とりあえず下記のコードで動きましたよって事で。
ちなみに下記のコードは、ES2015(ES6)のアロー関数使って書いています。
「ES2015(ES6)ってなにそれおいしいの?」って場合には、過去記事 React.jsでES2015(ES6)のアロー関数(Arrow Function =>)を使えるようにする を参考にしてみてください。
以下サンプルコード中の、const muiTheme はMaterial UIのカラーを定義している部分で、Material UIのサイト(https://v4.mui.com/ja/customization/color/)にカラーパレットツールがあり色々と試す事ができて便利です。
import React from 'react';
import {deepOrange500} from 'material-ui/styles/colors';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import getMuiTheme from 'material-ui/styles/getMuiTheme';
import {List, ListItem} from 'material-ui/List';
import IconMenu from 'material-ui/IconMenu';
import MenuItem from 'material-ui/MenuItem';
import IconButton from 'material-ui/IconButton';
// Material UI Theme Settings
const styles = {
container: {
textAlign: 'center',
paddingTop: 200,
},
};
// Choose Theme Set
const muiTheme = getMuiTheme({
palette: {
accent1Color: deepOrange500,
},
});
// Right Icom Menu
const iconButtonElement = (
<IconButton
touch={true}>
</IconButton>
);
export class KeywordList extends React.Component {
constructor(props) {
super(props);
this.state = {value: "Sample"};
this.handleEditData = this.handleEditData.bind(this);
this.handleDeleteData = this.handleDeleteData.bind(this);
}
handleEditData = () => {
alert("Edit");
}
handleDeleteData = () => {
alert("Delete");
}
render() {
const rightIconMenu = (
<IconMenu iconButtonElement={iconButtonElement}>
<MenuItem onClick={this.handleEditData}>Edit</MenuItem>
<MenuItem onClick={this.handleDeleteData}>Delete</MenuItem>
</IconMenu>
);
return (
<MuiThemeProvider muiTheme={muiTheme}>
<div>
<List>
{this.state.value.map(function(d, i) {
return (
<ListItem
rightIconButton={rightIconMenu}
primaryText={d}
/>);
})}
</List>
</div>
</MuiThemeProvider>
);
}
}



