Redux 如何初始化减速器?减速器返回未定义的值
我对Redux和Reducer完全是新手。我无法让我的第一个代码工作。有人能告诉我为什么(index.js)引用BooksReducer吗?我没有这样的道具、部件或文件。这给我带来了这样一个错误: 未捕获错误:还原程序“books”在初始化期间返回未定义。如果传递给还原程序的状态未定义,则必须显式返回初始状态。“如何初始化它?” reducer_book.js:Redux 如何初始化减速器?减速器返回未定义的值,redux,react-redux,jsx,reducers,Redux,React Redux,Jsx,Reducers,我对Redux和Reducer完全是新手。我无法让我的第一个代码工作。有人能告诉我为什么(index.js)引用BooksReducer吗?我没有这样的道具、部件或文件。这给我带来了这样一个错误: 未捕获错误:还原程序“books”在初始化期间返回未定义。如果传递给还原程序的状态未定义,则必须显式返回初始状态。“如何初始化它?” reducer_book.js: 导出默认函数(){ 返回 [ {title:'Crash bandicoot'}, {标题:'撞车乐队2:皮质反击'}, {标题:'C
导出默认函数(){
返回
[
{title:'Crash bandicoot'},
{标题:'撞车乐队2:皮质反击'},
{标题:'Crash bandicoot 3:Warped'},
{标题:'撞车队比赛'},
{title:'Crash Bash'}
]
}
index.js:
const rootReducer=combinereducer({
书籍:书籍减缩器
});
导出默认rootReducer;
App.js:
导出默认类应用程序扩展组件{
render(){
返回(
);
}
}
book_list.js:
类图书列表扩展组件{
renderList(){
返回此.props.books.map((book)=>{
报税表(
{book.title}
);
});
}
render(){
返回(
{this.renderList()}
)
}
}
函数MapStateTops(状态){
返回{
图书:国家图书
};
}
导出默认连接(MapStateTops)(图书列表);
在reducer中的return
语句后面似乎有一个换行符,因此可能会导致Javascript将其解释为return
,而不是返回[]代码>。尝试将数组的开括号向上移动到与return
关键字相同的行。在减缩器中的return
语句后面似乎有一个换行符,因此可能会导致Javascript将其解释为return
,而不是返回[]代码>。尝试将数组的开括号向上移动到与return
关键字相同的行。您需要将reducer导入index.js,或者直接内联使用reducer函数。我导入了它:/import BooksReducer from./reducer\u books';但我仍然不明白为什么在我的reducer\u books文件中没有这样的组件时它会引用BooksReducer。BooksReducer是从该文件导出的“默认”导出。它等于var books reducer=require(“./books\u reducer”);您可以随意命名。您可以在或soo上阅读有关ES6模块的信息,谢谢!:)您需要将reducer导入index.js,或者直接内联使用reducer函数。我导入了它:/import BooksReducer from./reducer\u books';但我仍然不明白为什么在我的reducer\u books文件中没有这样的组件时它会引用BooksReducer。BooksReducer是从该文件导出的“默认”导出。它等于var books reducer=require(“./books\u reducer”);您可以随意命名。您可以在或soo上阅读有关ES6模块的信息,谢谢!:)有趣的评论,你的眼睛很好:)现在我有另一个错误:“uncaughtreferenceerror:renderList没有在BookList.render中定义”我特别登录,只是为了向上投票。非常感谢@mark有趣的评论,你的眼睛很好:)现在我有另一个错误:“uncaughtreferenceerror:renderList没有在BookList.render中定义”我特别登录,只是为了升级投票。谢谢你,马克