Я пытаюсь выяснить пример кода JavaScript / React / Enzyme и полностью запутался в том, что означает атрибут className
в JSX-части ReactTestObj
ниже.
Я знаю, что className
в JSX используется, потому что class
является зарезервированным ключевым словом в JavaScript, но я думал, что атрибут className
/ class
в JSX / HTML был зарезервированным ключевым словом для ссылки на класс CSS? Если в моем примере нет CSS, каково юридическое использование class
/ className
, кроме ссылок на классы CSS?
import React from 'react';
export class ReactTestObj extends React.Component<Props, State> {
constructor(props) {
super(props);
}
render() {
return (
<div className={'outer'}>
<div className={'inner'}>
<span className={'prop'}>prop</span>
<span className={'state'}>state</span>
<button
className="activate"
onClick={function() {
}}>
{this.props.value}
</button>
</div>
</div>
);
}
}
и пример тестового кода для контекста:
import { mount, React, expect } from '../specHelper';
import { ReactTestObj } from '../../src/components/ReactTest';
describe('ReactTest', () => {
it('should have an outer div', function() {
const wrapper = mount(<ReactTestObj />);
expect(wrapper.find('.outer')).to.exist;
});
it('should have an inner div', function() {
const wrapper = mount(<ReactTestObj />);
expect(wrapper.find('.inner')).to.exist;
});
it('should have a prop', function() {
const wrapper = mount(<ReactTestObj />);
expect(wrapper.find('.prop')).to.exist;
});
it('should have a state and it should be set to 10', function() {
const wrapper = mount(<ReactTestObj />);
expect(wrapper.find('.state')).to.exist;
expect(wrapper.find('.state')).value('state');
});