6
votes

Avertissement: traduction manquante pour la clé: "";

J'utilise react-admin pour créer mon site Web. Mais je reçois cet avertissement de la page de liste à chaque fois ' Avertissement: traduction manquante pour la clé: ""; '

const ListTitle = () => {
    return <span>User Agents</span>;
}

 const SitemapFilter = props => (
    <Filter {...props}>
     <TextInput label="Type" source="type" alwaysOn/>
   </Filter>
   );

  export const SitemapList = props => (
     <List {...props} filters={<SitemapFilter />} title={<ListTitle />}>
    <Datagrid>
     <TextField source="type" label="Type"/>
     <UrlField source="url" label="URL"/>
     <EditButton/>
   </Datagrid>
 </List>
);

Je ne parviens pas à trouver la raison. S'il vous plaît donnez votre avis. Merci d'avance.


2 commentaires

Bonjour, après avoir mis à jour la version de React-Admin, j'ai également commencé à voir une telle chose, cela ressemble à un bug!


Vous pouvez le supprimer en ajoutant une clé vide à vos fichiers de traduction personnalisés: '': '', ...


3 Réponses :


2
votes

J'ai trouvé que le composant EditButton en est la cause. L'ajout d'un accessoire d'étiquette résout le problème.

<EditButton label="Edit" />


3 commentaires

Merci .. Cela fonctionne pour moi aussi. Mais maintenant, le titre de la colonne du bouton Modifier a changé en "Modifier". Mais je n'ai pas besoin de titre pour cette colonne dans le tableau de liste. Avez-vous une solution pour cela?


Vous pouvez passer une étiquette vide, comme label = "" . J'ai déposé un bug ici: github.com/marmelab/react-admin/issues/3017


Mais si j'ajoute une étiquette vide (), le texte du bouton Modifier ne s'affiche pas. Seule l'icône est là.



0
votes

Si vous obtenez également un dépassement de la taille maximale de la pile d'appels avec cette erreur, vous risquez de ne pas renvoyer une valeur non nulle de votre backend.

Par exemple, si vous avez un et que le type est requis mais que vous renvoyez une valeur nulle, vous obtiendrez cette erreur. La solution consiste soit à la rendre non obligatoire, soit à renvoyer une réponse non nulle .


0 commentaires

1
votes

tl; dr

Vérifiez que votre backend renvoie la bonne réponse!

Explication

La documentation sur le format de réponse indique:

DELETE: {data: {Record | null}} L'enregistrement qui a été supprimé (facultatif)

Dans notre API, le backend a renvoyé un simple HTTP 204 sans contenu (évidemment). Cela a provoqué l'erreur:

Attention: traduction manquante pour la clé: "Impossible de lire la propriété 'hasOwnProperty' sur undefined"

La modification de la réponse en enregistrement supprimé a résolu le problème.


0 commentaires