Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

"state" tarefas[] dentro do módulo

No módulo de Tarefas (na store) foi colocado o state novamente, sendo que ele já existe no arquivo index da store:

// -> src/store/modulos/tarefas/index.ts: 
export const tarefa: Module<EstadoTarefa, Estado> = {
  state: {
    tarefas: [],
  },
  .....

no caso do módulo de projetos, não foi colocado um state com projetos[], por exemplo.


Lembrando, no arquivo principal da store já existe o state:

// -> src/store/index.ts

export const store = createStore<Estado>({
    state: {
        notificacoes: [],
        projeto: { //nome vem da interface Estado
            projetos: [] // nome vem da  interface EstadoProjeto
        },
        tarefa: {
            tarefas: []
        }
    },

Pergunta: qual o motivo?

4 respostas
solução!

Excelente pergunta, Herbert.

O suporte à TypeScript do vuex@4 não é tão bom quanto poderia ser.

Uma alternativa é forçar uma conversão, que eu particularmente não acho tão bacana:

export const store = createStore<Estado>({
    state: {
        notificacoes: [],
    } as unknown as Estado,
    modules: {
        projeto,
        tarefa
    }
})

bom, a questão era principalmente pra não repetir esse código em dois lugares (src/store/index.ts e /src/store/modulos/tarefas/index.js)

state: {
    tarefas: [],
  }

pelo que notei agora, caso não tivesse colocado esse trecho dento do módulo de tarefas, não daria pra usar o "length" em this.tarefas.length (em /src/views/Tarefas.vue).

(Claro que dá pra contonar o .length fazendo de outra forma, mas pelo que vi foi feito para resolver esse ponto que comentei)

obs: Essas perguntas são mais pra saber qual melhor padrão, deixar todos os states em src/store/index.ts ou repeti-los em cada módulo..

O ponto principal é deixar cada módulo independente. Senão, podemos seguir sempre com uma única store, sem modularizar mesmo.

sim..esse foi justamente o meu questionamento.

Se for pra usar os módulos, mas ter que ficar repetindo o que está no state principal dentro de cada módulo, como ficaria.. (nessa aplicação deste curso está sendo repetido o state dentro de um dos módulos - de Tarefas)