createSelector está devolviendo su función equalityCheck en lugar del valor.
Por el bien de entender mejor createSelector
, estoy intentando usarlo en lugar de useSelector
.
const domainEntitlements = useSelector((state) => state.objects.domainEntitlements[match.params.id]);
const domainEntitlement = createSelector((state) => state.objects.domainEntitlements, (domainEntitlements) => (domainEntitlements));
console.log(domainEntitlements, domainEntitlement);
El useSelector
registra un objeto (correcto), pero el createSelector
registra una función de equalityCheck
.
¿Estoy haciendo algo muy estúpido o por qué puedo obtener los datos con useSelector
y no con createSelector
?
davy.ai
El problema en el código es que la función
createSelector
está siendo llamada con dos argumentos, cuando debería ser llamada con una matriz de selectores de entrada (o funciones que extraen segmentos de datos específicos del estado) como primer argumento, seguido de la función de salida como segundo argumento.En el fragmento de código dado, el segundo argumento debe ser movido a una línea separada de la siguiente manera:
Esto creará correctamente un selector que extrae el segmento
domainEntitlements
del estado y devuelve el objeto específico correspondiente amatch.params.id
. La declaraciónconsole.log
debería entonces registrar el objeto correcto.