Как я могу добавить menuItem из массива? - PullRequest
0 голосов
/ 10 октября 2018

это мой массив

const cct =cca.table.field.split(',');
console.log(cct);
Как я могу использовать его, чтобы добавить menuItem для моего SelectInput
  <SelectInput value={this.state.value}
            onChange={this.handleDropDownChange}            
            maxHeight={200}
            
            floatingLabelFixed={true}
            >
            {myarray}
        </SelectInput>

Я пытался сделать это так

    const cct = cca.table.field.split(',');
    const items= [];
    cct.forEach(element => {
      cct.push(<MenuItem key={element.Key} value={element.Key} primaryText={element.Value} />);
    });
    console.log(cct);

но это не работает

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Я предполагаю, что вы пытаетесь использовать UI материала Выберите и MenuItem компоненты.

Должно работать следующее:

render() {
  const cct = cca.table.field.split(',');

  const menuItems = cct.map(item => (
    <MenuItem key={element.Key} value={element.Key}>{item.Value}</MenuItem>
  ));

  return (
    <Select 
      value={this.state.value}
      onChange={this.handleDropDownChange}
    >
      {menuItems}
    </Select>
  );
}
0 голосов
/ 10 октября 2018

Измените ввод метода push как строку, заключив

<MenuItem key={element.Key} value={element.Key} primaryText={element.Value} />

в "" (двойные кавычки)

Это будет работать:

const cct = cca.table.field.split(',');
const items= [];
cct.forEach(element => {
  cct.push("<MenuItem key={element.Key} value={element.Key} primaryText={element.Value} />");
});
console.log(cct);
...