Función de Javascript con 2 argumentos.
Estoy tratando de convertir estas acciones de Redux en acciones de Vuex. Observé que las acciones tienen 2 “holders” (no conozco el término) para el argumento. Para dar un ejemplo, se ve así:
export const priceAction = (amount) => async (dispatch, getState) => { … }
Ahora en mi vue, estoy tratando de modularizar el vuex, de esta manera:
Cómo se ve el módulo “Price”:
store/module/Price
/ actions.ts
/ index.ts
En “Price/actions.ts”:
export const priceAction = (amount: number) => async ({commit, dispatch}: ActionContext<state, rootstatetype=””>, state: State) => { … }
En “Price/index.ts”:
import * as actions from ‘./actions’
import { state } from ‘./state-type’
export default {
namespaced: true,
state: state,
getters: {},
mutations: {},
actions: actions
}
Ahora, en el reducer principal “store.ts”:
import Price from ‘./module/Price’
export const store = createStore({
modules: {
Price //-> Esto me muestra una serie de errores
}
})
Los errores:
- Los tipos de propiedad ‘actions’ no son compatibles.
- El tipo ‘typeof import(“D:/workspaces/proj/myproj/src/store/modules/Price/actions”)’ no se puede asignar al tipo ‘ActionTree<any, {=”” mainstore:=”” string;=”” }=””>’.
- La propiedad ‘priceAction’ es incompatible con la firma de índice.
- Los tipos de los parámetros ‘amount’ e ‘injectee’ no son compatibles.</any,></state,>
davy.ai
Los errores sugieren que hay un problema con los tipos de las acciones en el módulo de Precios. Parece que los tipos que se usaron en las acciones de Redux no son compatibles con el ActionTree de Vuex. El primer paso para resolver este problema sería tipar adecuadamente las acciones de Vuex para que coincidan con los tipos esperados.
En
Price/actions.ts
, asegúrate de que la acción tenga los tipos correctos paracommit
,dispatch
,state
y cualquier argumento que se pase a la acción.Luego, en
Price/index.ts
, importa el tipoActionTree
de Vuex y úsalo para tipar correctamente la propiedadactions
.Por último, en
store.ts
, asegúrate de que el móduloPrice
esté correctamente tipado importando el tipoPriceActions
y usándolo para la propiedadactions
.Con estos cambios, la tienda y los módulos de Vuex deberían estar correctamente tipados y los errores deberían resolverse.</priceactions[t]></priceactions[t]></state,></state,></state,>