我正在尝试构建一个React + Redux应用程序,我使用的是Redux。
我的一个动作创作者是这样的:
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时,我会得到错误:
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函数中,作为我要传入的匿名函数的一个参数。
这方面的任何帮助都会很好。谢谢!
发布于 2017-05-21 22:14:56
我不确定这是否是问题的根源,但是为什么你需要书的内部参考呢?你的错误信息/链接器正在抱怨这一点。
...
api
.books()
.perPage(-1)
.then(books =>
dispatch({
type: FETCH_BOOKS,
books,
})
).catch(error => dispatch({type: ERROR, error}))为什么上面的人不做你想做的事?
这里没有必要的调度功能。
调度需要一个简单的行动。调度中的一个函数给出了错误。当您在docs中看到分派中的函数时,这些函数就是函数调用,它们只是返回操作。
export someActionCreator = () => ({type: ACTION, payload})
dispatch(someActionCreator());您的函数只是语句,没有将操作返回给调度。这会更像是
export someActionCreator = () => ({type: ACTION, payload})
dispatch(someActionCreator);看到区别了吗?
希望这能有所帮助!
https://stackoverflow.com/questions/44102108
复制相似问题