Элемент списка в Reactjs

Я создаю элемент списка в React, но не понимаю, почему он не отображается. Должен ли я делать компонент класса?

List.js

import React, { Component } from 'react';
import { withStyles } from 'material-ui/styles';


const styles = {
  root: {
      display: 'flex',
      backgroundColor: "whitesmoke",
      width: '100%',
  },
}

function ListSeances(props) {

    const { classes } = props;

    const list = [1,2,3,4,5,6];

    const listItems = list.map((item) =>{
        <li>{ item }</li>
    });


      return (
         <div className = {classes.root}>
           <ul>{ listItems }</ul>
         </div>
      )
  }

export default withStyles (styles)(ListSeances);

MapAppBar

class MapAppBar extends React.Component {

  render() {

    const { classes, animation } = this.props

    return(
  <div className = {classes.root}>
    <App_Bar className = {classes.appBar} position = "fixed">
      <Toolbar>
        <Typography variant = "title" color = "inherit">
        </Typography>
      </Toolbar>
      <TextFields/>
        <DatePicker/>
        <DatePicker2/>
      <ListSeances/>
    </App_Bar>
  </div>
  )
  }
}

Мой список должен появиться в MapAppBar.js. Я вставил import ListSeances from './List';.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
923
1

Ответы 1

Вы ничего не возвращаете в функции карты. В вашем случае вы сопоставляете каждое значение с undefined, потому что вы написали блокировать заявление.

попробуйте (без фигурных скобок, ( и ) тоже не нужны):

const listItems = list.map((item) => (
    <li>{ item }</li>
));

или (правильно с оператором возврата)

const listItems = list.map((item) => {
    return <li>{ item }</li>
});

это из-за фигурных скобок. Я думаю, что действительно хороший способ описания того, как работают стрелочные функции, написал Мариус Шульц.

https://blog.mariusschulz.com/2015/06/09/returning-object-literals-from-arrow-functions-in-javascript

в вашем случае функция сопоставления при использовании функции стрелки может быть написана

const mapper = item => (<li>{ item }</li>)

или, если вы не возвращаете литерал объекта

const mapper = item => {
    return <li>{ item }</li>
}

Спасибо за ваши объяснения и статьи. Это работает, и я понял, почему.

user9544554 21.05.2018 21:06

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