javascript - 将数据填充到material-ui下拉列表React JS

标签 javascript reactjs material-ui

我需要一些帮助,我想将数据填充到下拉菜单中,我正在使用material-ui,但我不知道该怎么做,我真的很陌生,我知道我可以使用 Prop ,然后将它们传递给下拉菜单,但对我来说并不清楚。

这是我的代码:

import React from 'react';
import DropDownMenu from 'material-ui/DropDownMenu';
import MenuItem from 'material-ui/MenuItem';



export default class CreateLinksave extends React.Component {

 constructor(props) {
   super(props);
   this.state = {value: 1
   };
   this.handleChange=this.handleChange.bind(this);
 }
 handleChange(event, index, value) {this.setState({value});}

render() {
 return (
    <div className="container">
     <div>
       <RaisedButton label="Copy an existing Global Multisave"/>
     </div>
      <div>
      <DropDownMenu value={this.state.value} onChange={this.handleChange}>
        <MenuItem value={1} primaryText="Never" />
        <MenuItem value={2} primaryText="Every Night" />
        <MenuItem value={3} primaryText="Weeknights" />
      </DropDownMenu>
      </div>
     </div>
  );
 }
}

如您所见,我的下拉菜单中有一些选项是“硬编码”的,但我想让它动态化,所以如果将更多选项添加到 Prop 中,那么这会自动填充它们。

有人可以帮我解决这个问题吗?

问候。

最佳答案

假设您可以将这些 Prop 作为数组发送:

items = [
  { value: 1, primaryText: 'Never' },
  { value: 2, primaryText: 'Every Night' },
  { value: 3, primaryText: 'Weeknights' },
]

只需映射它们,您就会得到相同的结果:

render() {
  return (
    <div>
      <DropDownMenu value={this.state.value} onChange={this.handleChange}>
        {this.props.items.map(item =>
          <MenuItem key={item.value} {...item} />
        )}
      </DropDownMenu>
    </div>
  )
}

关于javascript - 将数据填充到material-ui下拉列表React JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47161397/

相关文章:

javascript - 如何解释可选 JavaScript 参数的文档

javascript - Chart.js 分隔线

javascript - Windows 7 小工具不释放 ActiveX 对象

javascript - react : Communicate between sibling components

javascript - 导航栏无法点击

reactjs - 修改文本字段显示的内容

reactjs - defaultSorted 和 React Bootstrap 表出现问题

javascript - 将传递函数 react 给子父对象而不是重新渲染

javascript - 映射对象内的映射对象

reactjs - 如何使用 material-ui-pickers 更改输入名称