Entonces, en mi aplicación de reacción que tengo en mi tienda, una matriz de objetos de video videos: [{},{}] ahora estoy tratando de trabajar con esta información, así que cuando cargo una página, obviamente la matriz está vacía, videos: [] porque la acción aún no se ha activado para recuperar los videos del servidor. así que estoy tratando de hacer un poco de representación condicional, que si videos.length> 0 haga algo, porque para fines de prueba estoy tratando de acceder a videos [2] que no existe hasta que se completa la matriz.
pero recibo un error de que videos.length no está definido
desestructuré el estado const {videos, loading} = useSelector(state => state.videos) (donde el reductor también se llama videos..
en mi extensión Redux, puedo ver claramente que es una matriz vacía, y sé que incluso una matriz vacía tiene una propiedad de longitud (0), así que no entiendo por qué obtengo esto como indefinido.
Esta línea de código: const {videos, loading} = useSelector(state => state.videos)
asume que state.videos es un objeto que tendrá 2 props videos y loading . Algo así:
state: { videos : { videos: videosValue loading: loadingValue } } Cuando encuentra los 2 accesorios, desestructura state.videos y asigna los valores así: videos = videosValue y loading = loadingValue
Es posible que desee revisar su estado. ¿Puede ser que el estado no tenga la estructura mencionada anteriormente? ¿Puede ser que el objeto de state tenga un accesorio llamado videos que es una matriz y otro accesorio llamado loading que es booleano?
Si el objeto de state tiene la siguiente estructura:
state: { videos: videosValue loading: loadingValue } entonces, es posible que desee desestructurar el objeto de state y no el objeto state.videos .