web-dev-qa-db-fra.com

ESLint doit utiliser l'attribution d'état de déstructuration

Je reçois une erreur ESlint pour la ligne suivante this.state.items.map(item => (

L'erreur est Must use destructuring state assignment

{
            this.state.items.map(item => (
              <div key={item}>
                {
                item.links.map(thing => (
                  <NavLink
                    key={thing.link.id}
                    exact
                    to={thing.link.url}
                  >
                    {thing.link.text}
                  </NavLink>
                ))
                }
              </div>
            ))
          }

J'utilise "eslint-config-airbnb"

En outre, ceci est ma fonction ComponentDidMount si cela est lié

componentDidMount() {
  fetch('./data/data_arr.js')
  .then(results => results.json())
  .then(results => this.setState({ items: results }));
}

Toute aide pour essayer de comprendre cela serait formidable. Merci

22
roshambo

Cela s'appelle:

Imposer l'utilisation cohérente de l'attribution de déstructuration des accessoires, de l'état et du contexte (réaction/déstructuration-affectation)

Plus de détails sont disponibles ici: déstructuration-affectation

Afin de faire disparaître cet avertissement/erreur, vous pouvez faire comme ceci:

      ...
      const { items }= this.state;
      ...
      {
        items.map(item => (
          <div key={item}>
            {
            item.links.map(thing => (
              <NavLink
                key={thing.link.id}
                exact
                to={thing.link.url}
              >
                {thing.link.text}
              </NavLink>
            ))
            }
          </div>
        ))
      }
19
Nguyen You