reactjs - React-Redux, no se puede asignar un valor a una cadena vacía
Estoy usando el hook useDispatch y no puedo establecer la cadena en una cadena vacía. Siempre establece el valor en la última letra.
App.tsx
const dispatch = useDispatch();
dispatch(updateLocation(''));
reducers.tsx
const setLocation = (location = "", action: any) => {
switch (action.type) {
case "Location":
return action.value || location;
default:
return location;
}
};
action.tsx
export const updateLocation = (location: string) => {
return {
type: "Location",
value: location,
};
};
Respuesta #1
Dado que la cadena vacía es falsa, siempre estableces el valor de la ubicación.
Necesitas cambiar tu código de reducers:
const setLocation = (location = "", action: any) => {
switch (action.type) {
case "Location":
return action.value !== undefined ? action.value : location;
default:
return location;
}
};
Respuesta #2
si action.value es una cadena vacía, se evaluará como falso y así se devuelve location (también conocida como última letra) y no la cadena vacía.
intenta quitar "|| location" de tu código.
