Why do I have this Uncaught TypeError: (0 , _normalizr.arrayOf) is not a function?

Why do I have this Uncaught TypeError: (0 , _normalizr.arrayOf) is not a function?

我正在学习 dan abramov 的 redux 教程,代码非常简单:

import { schema, arrayOf } from 'normalizr';

export const todo = new schema.Entity('todos');
export const arrayOfTodos = arrayOf(todo);

但是我有这个错误:

Uncaught TypeError: (0 , _normalizr.arrayOf) is not a function

这就是我在调度中使用它的方式:

return api.fetchTodos(filter).then((response) => {
      dispatch({
        type: 'FETCH_TODOS_SUCCESS',
        filter,
        response: normalize(response, schema.arrayOfTodos),
      });
    }

我似乎无法追踪这里的错误,这段代码有什么问题?

对于错误尝试这个:

import { schema } from 'normalizr';

export const todo = new schema.Entity('todos');
export const arrayOfTodos = schema.Array(todo);

不确定你的 normalizr 版本,但基于 docs lib 本身有一些结构上的变化。

import { schema } from 'normalizr';

export const todo = new schema.Entity('todos');
export const arrayOfTodos = [todo];

这适用于所有版本的 normalizr,直到最近的版本