为啥我有这个 Uncaught TypeError: (0 , _normalizr.arrayOf) is not a function?

Posted

技术标签:

【中文标题】为啥我有这个 Uncaught TypeError: (0 , _normalizr.arrayOf) is not a function?【英文标题】:Why do I have this Uncaught TypeError: (0 , _normalizr.arrayOf) is not a function?为什么我有这个 Uncaught TypeError: (0 , _normalizr.arrayOf) is not a function? 【发布时间】:2017-11-20 16:50:29 【问题描述】:

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

import  schema, arrayOf  from 'normalizr';

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

但我有这个错误:

未捕获的 TypeError: (0 , _normalizr.arrayOf) 不是函数

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

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

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

【问题讨论】:

【参考方案1】:

对于错误试试这个:

import  schema  from 'normalizr';

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

不确定您的 normalizr 版本,但基于 docs,lib 本身发生了一些结构变化。

【讨论】:

感谢您链接更新日志,我确实 export const arrayOfTodos = [todo];现在好了。【参考方案2】:
import  schema  from 'normalizr';

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

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

【讨论】:

以上是关于为啥我有这个 Uncaught TypeError: (0 , _normalizr.arrayOf) is not a function?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Uncaught TypeError: Cannot set property 'innerHTML' of null 显示即使 <span> 和 js 中的 id 相同? [复制]

这个错误是啥意思 - Uncaught TypeError: 已经读过?

Uncaught TypeError 不是 AJAX 回调函数

如何使用 tableDragger 解决 Uncaught TypeError?

Nodejs Browserify Uncaught TypeError:存在不是函数

Uncaught TypeError: Cannot redefine property: $router