Html-react-parser: Erreur : img est une balise d'élément vide et ne doit pas avoir de « enfants » ni utiliser « dangerouslySetInnerHTML »

Créé le 26 août 2016  ·  14Commentaires  ·  Source: remarkablemark/html-react-parser

Salut!

Super plugin, je pense vraiment que cela va être utile pour ce sur quoi je travaille.

J'ai remarqué que l'analyse de tout élément img provoque l'erreur ci-dessus. Cela peut également s'appliquer à tout élément qui ne devrait jamais avoir d'éléments enfants.

Une solution de contournement temporaire consiste à utiliser quelque chose comme ceci :

const parserConfig = {
    replace: domNode => {
        if(domNode.type === DOM_TYPE_TAG && domNode.name === 'img') {
            return <img src={domNode.attribs.src} alt={domNode.attribs.alt} className={domNode.attribs.class} />;
        }
    }
};
bug

Commentaire le plus utile

Je rencontrais ce problème parce que j'essayais d'ajouter des enfants à une balise img ...

Tous les 14 commentaires

Merci de me le faire savoir. Avez-vous un exemple pour que je puisse reproduire cette erreur?

Salut!
Vous pouvez le reproduire avec les éléments suivants :
ReactDOM.render(Parser('<div><img src="" alt=""/></div>'), document.getElementById('root'));

Super merci!

@poacher2k Merci pour l'exemple. J'ai examiné le bogue et fait un correctif dans #16.

Essayez npm update html-react-parser ou npm install [email protected] et dites-moi si cela supprime l'erreur pour vous.

C'est réglé, merci encore ! Heureux de voir que vous avez également ajouté des contrôles pour d'autres éléments vides !

Super à entendre et vous êtes les bienvenus! ??

@remarkablemark Je suis toujours confronté au problème et le code npm install [email protected] n'est pas mis à jour dans cette version.

@vidit1 Pouvez-vous confirmer que vous avez installé la version latest ?

npm i html-react-parser<strong i="8">@latest</strong>

# or
npm i [email protected]

Vérifiez ensuite en faisant :

npm ls html-react-parser

@remarkablemark J'ai mis à jour la dernière version de html-react-parser et je suis toujours confronté à ce problème. Mon l'élément est à l'intérieur d'un composant material-ui.
<Drawer> <div className="alert" role="alert"> <img src="https://getbootstrap.com/assets/brand/bootstrap-solid.svg" width="30" height="30" className="d-inline-block align-top" alt=""> Bootstrap </img> </div> </Drawer>

@blueskysmart : Vous avez le texte "Bootstrap" à l'intérieur de votre img -tag. Comme l'indique l'erreur, img est un élément vide et ne peut avoir aucun enfant.

Voir le commentaire de @remarkablemark ci-dessous pour savoir comment le corriger.

@blueskysmart Le commentaire fait par @poacher2k est correct. Vous pouvez voir la reproduction de cette erreur dans ce violon .

Ok, je vois. Merci.

Cette erreur survient également si vous essayez uniquement d'analyser ceci :
<img src="img.jpg".>

Pour le faire fonctionner, enveloppez-le dans un div :

<div>
<img src="img.jpg".>
</div>

Je rencontrais ce problème parce que j'essayais d'ajouter des enfants à une balise img ...

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

rgavinc picture rgavinc  ·  4Commentaires

EoleO picture EoleO  ·  5Commentaires

linkurzweg picture linkurzweg  ·  8Commentaires

alizeaiter picture alizeaiter  ·  3Commentaires

purp1eeeee picture purp1eeeee  ·  15Commentaires