при использовании 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
запрещен