-1
votes

Détruire des params imbriqués, une erreur non définie

Je continue à obtenir userload non défini lors de la destruction: xxx

Comment puis-je vérifier indéniables? J'ai essayé le chèque ci-dessous, mais continuez à obtenir l'erreur: xxx


5 commentaires

où est la charge utile déclarée?


Avez-vous use de charge utile ou action ?


essayez si (charge utile) {// quelque chose}


Obtenez-vous l'erreur dans si (paylard.videos) ou dans la déstructuration? Quel est le message d'erreur exact? Ce n'est pas clair


Dupliqué possible de Comment éviter "Impossible de lire la propriété des erreurs non définies" ?


3 Réponses :


0
votes

Vous devez avoir une action définie comme ceci const action = {utile de la charge: {vidéos: ["Matrix", "Star Wars"]}}

Et vous pouvez vérifier que la charge utile n'est pas non définie comme celle-ci si (action && action.payload) alors vous pouvez faire votre opération de destruction.


0 commentaires

0
votes

Il vous suffit de vous assurer que l'action est définie en premier et accédez à ses paramètres au lieu d'appeler la charge utile par elle-même. Dans votre exemple, il semble que la charge utile code> était non déclaré lorsque vous essayez d'y accéder

p>

function getVideos(action) {
  const {payload: {videos=[]}={}} = action || {};
  return videos;
}

console.log(getVideos()); // action undefined, expected []
console.log(getVideos({})); // payload undefined, expected []
console.log(getVideos({payload: {}})); // videos undefined, expected []
console.log(getVideos({payload: {videos: [1,2,3]}})); // expected [1,2,3]


0 commentaires

0
votes

Vous pouvez prendre un chèque et une valeur par défaut sans la destruction.

p>

function getVideos(action) {
    return action && action.payload && action.payload.videos || [];
}

console.log(getVideos());                 // action undefined, expected []
console.log(getVideos({}));              // payload undefined, expected []
console.log(getVideos({ payload: {} }));  // videos undefined, expected []
console.log(getVideos({ payload: { videos: [1, 2, 3] } })); // expected [1, 2, 3]


0 commentaires