Как динамически генерировать React Kendo <GridColumn />?

Я пытаюсь построить сетку кендо, используя новую библиотеку KendoReact, и мой метод рендеринга приведен ниже.

render() {
    var allColumns = this.state.data.length > 0 ? Object.keys(this.state.data[0]) : []
    var columnsToShow = allColumns.map((item,i) => <GridColumn field={item} key={i} />);
    return (<div> 
        <Grid
            data={this.state.data}
        >
            {columnsToShow}

        </Grid>
    </div>
    );
}

Поскольку GridColumns должны быть определены (не автоматически), я хотел генерировать их динамически, то есть в строке 3 var columnsToShow, Может ли кто-нибудь помочь мне понять, почему столбцы не отображаются, а данные отображаются? (Я знаю, что данные присутствуют, потому что, если я определю их отдельно <GridColumn field="Name" /> оно работает.)

1 ответ

Решение

Кажется, что код выше в порядке. При использовании вашего динамического создания столбцов

var allColumns = this.state.data.length > 0 ? Object.keys(this.state.data[0]) : []
var columnsToShow = allColumns.map((item,i) => <GridColumn field={item} key={i} />);

внутри официальной демонстрации Kendo React Grid столбцы генерируются успешно. Названия столбцов могут быть изменены с помощью Title опора на каждый столбец.

Другие вопросы по тегам