Реагируйте на Redux с помощью правил ESLint - PullRequest
0 голосов
/ 29 августа 2018

при использовании React и Redux со стилем Airbnb и правилами ESlint у меня возникают некоторые сомнения по поводу деструктуризации и верхнего уровня:

import user from "./userModel";

class MyName extends Component {
  state = { user, size:0 };
render() {
    const {size}=this.state ; 
    const { username, items, location } = this.state.user;
    return (...)}}
MyName.propTypes = {createNewUser: PropTypes.func.isRequired
  // users: PropTypes.object};
const mapStateToProps = state => ({users: state.users});
export default connect(mapStateToProps,{ createNewUser})(MyName);

в этом коде при разрушении состояния, ESLint говорит Must use destructuring state assignment (react/destructuring-assignment) и когда я переписываю это как

const {size, user}=this.state ; 
const { username, items, location } = user;

снова получаю

'user' is already declared in the upper scope. (no-shadow)

тот же тип предупреждений показан в том случае, когда я деконструирую пользователей (магазина), как const {users}=this.props;, он говорит 'users' is missing in props validation (react/prop-types), а когда я определяю его в propTypes, он говорит, что object запрещен

1 Ответ

0 голосов
/ 29 августа 2018

Вы можете «переименовать» переменную во время деструктурирования, чтобы предотвратить конфликт:

const { size, user: currentUser } = this.state;

Значение принимает значение от this.state.user и присваивает его currentUser.

...