Атрибут "class" работает в JSX: как? - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть студент, который отправил код, который включает в себя ряд атрибутов class (, а не className).Например:

import React, { Component } from "react";

class Images extends Component {
    render() {
        return (
            <div class="gallery">
                <div class="zoom"><img src="foo.jpg" alt="Foo"/></div>
                <div class="zoom"><img src="bar.jpg" alt="Bar"/></div>
            </div>
    );
}

Но почему-то его код работает и генерирует действительные атрибуты HTML class.Я даже пытался удалить строку, чтобы убедиться, что код действительно используется, но, конечно, соответствующая строка была удалена в выводе.

Я не понимаю, как это может работать.Студент использовал create-react-app, который использует библиотеку react-scripts для компиляции / запуска сайта, но я не нашел упоминаний ни об одном преобразовании class в className:

https://facebook.github.io/create-react-app/

https://github.com/facebook/create-react-app/tree/master/packages/react-scripts

Кто-нибудь может объяснить это колдовство?;)

PS Соответствующие версии библиотеки:

"jsx": "^0.9.89",
"react": "^16.6.3",
"react-dom": "^16.6.3",
"@babel/preset-react": "^7.0.0",

1 Ответ

0 голосов
/ 05 декабря 2018

Это изменение произошло с React@16.Вы также можете использовать class, но не во всех случаях: https://reactjs.org/blog/2017/09/08/dom-attributes-in-react-16.html#changes-in-detail

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...