Первая таблица React JS

Здравствуйте, я новичок в react js, и я хочу создать простую таблицу без подключения к базе данных. Я создаю что-то подобное, но не знаю, как создавать имена столбцов. Smb умеет творить?

class App extends React.Component {
    constructor() {
        super();
        this.state = {
            data:
                [
                    {
                        "id": 1,
                        "name": "Foo",
                        "age": "20"
                    },
                    {
                        "id": 2,
                        "name": "asdas",
                        "age": "30"
                    },
                    {
                        "id": 3,
                        "name": "fgdf",
                        "age": "40"
                    }
                ]
        }
    }

    render() {
        return (
            <div>
                <Header/>
                <table>
                    <tbody>
                    {this.state.data.map((person, i) => <TableRow key = {i}
                                                                  data = {person}/>)}
                    </tbody>
                </table>
            </div>
        );
    }
}

class Header extends React.Component {
    render() {
        var myStyle = {
            fontSize: 20,
            color: '#2aa445'
        }
        return (
            <div>
                <h1 style = {myStyle}>Person Table</h1>
            </div>
        );
    }
}

class TableRow extends React.Component {
    render() {
        return (
            <tr>
                <td>{this.props.data.id}</td>
                <td>{this.props.data.name}</td>
                <td>{this.props.data.age}</td>
            </tr>
        );
    }
}

export default App;

Этот код показывает только чистый текст, а не столбцы и строки таблицы: / Это может быть что-то простое.

Вы создаете заголовки таким же образом: вы выясняете имена и либо кодируете их вручную, либо помещаете их в коллекцию и выполняете итерацию, создавая строку для заголовков и <th> для каждого заголовка.

Dave Newton 21.05.2018 15:18

вам также следует добавить заголовок таблицы, например: "<th> </th>",

Gautam Rai 21.05.2018 16:40
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
326
3

Ответы 3

Вам нужен тег заголовка столбца таблицы

<th>Col name 1</th>

Вот пример

Edit zkoym3rok4

Вы имеете в виду? {this.state.data.map ((person, i) => RETURN (<TableRow key = {i} data = {person} />))}. Для стрелочных функций это не обязательно. Но рад, что вы просмотрели мой пример

Sasha Kos 21.05.2018 16:45

Вы имеете ввиду this.props.data.id? Нет, вы не можете определять конструктор, и this.props будет доступен автоматически

Sasha Kos 21.05.2018 16:58

вы не используете какой-либо фреймворк, поэтому вы не можете видеть границу ячейки aur в своих данных, вы можете использовать css, чтобы добавить настраиваемую границу так же, как ответ @theJuls, или вы можете использовать фреймворк начальной загрузки, который даст вам вид таблицы по умолчанию.

amitchauh4n 21.05.2018 17:02

Вопрос был не в виде таблицы, а в заголовке таблицы.

Sasha Kos 21.05.2018 17:06

Затем проверьте мой ответ, чтобы добавить заголовок таблицы, мы используем <thead>, а для добавления столбца в заголовок таблицы добавить <th>

amitchauh4n 21.05.2018 17:08

Не проблема. Сделанный

Sasha Kos 21.05.2018 17:10

Таблицы в оригинальном ReactJS такие же, как и в HTML. Глянь сюда

Имена столбцов создаются с помощью тега th. Для этого вам также понадобится строка (tr). В вашем случае код будет выглядеть примерно так:

<table>
          <tr>
            <th>Column1</th>
            <th>Column2</th>
            <th>Column3</th>
          </tr>
         <tr>
                <td>{this.props.data.id}</td>
                <td>{this.props.data.name}</td>
                <td>{this.props.data.age}</td>
            </tr>
        </table>

Поэтому для этого вам нужно добавить свои собственные стили, чтобы отображать границы и все остальное.

В частности, для вашего случая я бы сказал, что в тегах table и td вам необходимо добавить стиль границы:

table, td {
    border: 1px solid black;
}

Однако это сделает весь контент немного плотным внутри границы, поэтому также добавьте им отступ:

td {
  padding: 10px
}

Обновлено: вот лучшая версия вашей таблицы:

class App extends React.Component {
  render () {
    return (
      <div>
        <table>
          <tr>
            <th>Column1</th>
            <th>Column2</th>
            <th>Column3</th>
          </tr>
         <tr>
                <td>this.props.data.id</td>
                <td>this.props.data.name</td>
                <td>this.props.data.age</td>
            </tr>
        </table>
      </div>
    )
  }
}

ReactDOM.render(
    <App />,
    document.getElementById('app')
);
table, td, th {
    border: 1px solid black;
}

td {
  padding: 10px
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id = "app"></div>

Вы можете сделать это таким образом, это самый простой способ динамического создания таблицы. Если вы хотите добавить больше столбцов, добавьте также такое же количество td. и если вы хотите добавить стиля к своей таблице, пожалуйста, посмотрите Таблица начальной загрузки

<table>
 <thead>
  <tr>
   <th>
     COLUMN NAME
   </th>
  </tr>
 </thead>
<tbody>
 {
   data.map((item,index)=>{
     return(<td key = {index} > {item} </td>) 
   })
 } 
</tbody>
</table>

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