首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redux Thunk / Eslint erro

Redux Thunk / Eslint erro
EN

Stack Overflow用户
提问于 2017-05-21 21:45:56
回答 1查看 475关注 0票数 0

我正在尝试构建一个React + Redux应用程序,我使用的是Redux。

我的一个动作创作者是这样的:

代码语言:javascript
复制
import api from '../api';

export const FETCH_BOOKS = 'FETCH_BOOKS';

export default () => dispatch =>
  api
    .books()
    .perPage(-1)
    .then(books =>
      dispatch(books => ({
        type: FETCH_BOOKS,
        books,
      }))
    )
    .catch(error =>
      dispatch(e => ({
        type: 'ERROR',
        error: e,
      }))
    );

但是,当我运行yarn run build:production时,我会得到错误:

代码语言:javascript
复制
ERROR in ./scripts/ll-app/actions/fetch-books.js

/Users/joneslloyd/resources/assets/scripts/ll-app/actions/fetch-books.js
   9:11  warning  'books' is defined but never used                                      no-unused-vars
  11:9   error    Expected an assignment or function call and instead saw an expression  no-unused-expressions
  11:9   error    'books' is already declared in the upper scope                         no-shadow
  17:12  warning  'error' is defined but never used                                      no-unused-vars
  19:9   error    Expected an assignment or function call and instead saw an expression  no-unused-expressions
  19:9   error    'error' is already declared in the upper scope    

但是,我希望将books数组(从异步api调用返回)传递给分派(传递给分派的匿名函数),然后在操作中包含所述的books数组,还原器将接收该数组。

我在这里做错什么了吗?

即使我将内部引用重命名为books,也于事无补。

很有可能我在这里忽略了ES6里的一些东西。但是我基本上想要从api调用返回的books数组(作为then方法的一个参数),然后将它传递到其中的dispatch函数中,作为我要传入的匿名函数的一个参数。

这方面的任何帮助都会很好。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-21 22:14:56

我不确定这是否是问题的根源,但是为什么你需要书的内部参考呢?你的错误信息/链接器正在抱怨这一点。

代码语言:javascript
复制
...
  api
.books()
.perPage(-1)
.then(books =>
  dispatch({
    type: FETCH_BOOKS,
    books,
  })
).catch(error => dispatch({type: ERROR, error}))

为什么上面的人不做你想做的事?

这里没有必要的调度功能。

调度需要一个简单的行动。调度中的一个函数给出了错误。当您在docs中看到分派中的函数时,这些函数就是函数调用,它们只是返回操作。

代码语言:javascript
复制
export someActionCreator = () => ({type: ACTION, payload})
dispatch(someActionCreator());

您的函数只是语句,没有将操作返回给调度。这会更像是

代码语言:javascript
复制
export someActionCreator = () => ({type: ACTION, payload})
dispatch(someActionCreator);

看到区别了吗?

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44102108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档