나는 a rule that enforces stateless react components to be rewritten as a pure function이있는 airbnb eslint 설정을 사용하고 있습니다. 다음 구성 요소는 아래의 구성 요소가 더 순수 함수로 기록 될 것이라는 점을 의미한다이 규칙, 트리거 : 그러나반응 구성 요소를 데코레이터로 다시 작성하는 방법은 무엇입니까?
import React from 'react';
import { observer } from 'mobx-react';
import cssmodules from 'react-css-modules';
import styles from './index.css';
import Select from '../Select/';
import List from '../List/';
@cssmodules(styles)
@observer
export default class Analysis extends React.Component {
render() {
return (
<div styleName="wrapper">
<div styleName="column">
<Select store={this.props.store} />
</div>
<div styleName="column">
<List store={this.props.store} />
</div>
</div>
);
}
}
Analysis.propTypes = {
store: React.PropTypes.object.isRequired,
};
, 나는 순수 함수로 그것을 다시, 나는 오류 Leading decorators must be attached to a class declaration
을 것을 얻을 (아래 참조) :
import React from 'react';
import { observer } from 'mobx-react';
import cssmodules from 'react-css-modules';
import styles from './index.css';
import Select from '../Select/';
import List from '../List/';
@cssmodules(styles)
@observer
function Analysis(props) {
return (
<div styleName="wrapper">
<div styleName="column">
<Select store={props.store} />
</div>
<div styleName="column">
<List store={props.store} />
</div>
</div>
);
}
Analysis.propTypes = {
store: React.PropTypes.object.isRequired,
};
그럼 순수한 구성 요소로 작성하고 꾸미기를 첨부 할 수 있습니까? 아니면 에어 비앤비 링틴 규정의 실수입니까? 두 규칙 모두를 만족시키는 것이 불가능합니까?
이것이 맞습니다. 데코레이터 제안에는 기능 데코레이터 개념이없고 클래스 및 속성 데코레이터 만 있습니다. 그래서 이것은 참으로 데코레이터 함수 컴포넌트에 대한 관용적 인 방법입니다 (클래스에 대해서도 잘 작동합니다) – mweststrate