Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redux 如何初始化减速器?减速器返回未定义的值_Redux_React Redux_Jsx_Reducers - Fatal编程技术网

Redux 如何初始化减速器?减速器返回未定义的值

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

我对Redux和Reducer完全是新手。我无法让我的第一个代码工作。有人能告诉我为什么(index.js)引用BooksReducer吗?我没有这样的道具、部件或文件。这给我带来了这样一个错误: 未捕获错误:还原程序“books”在初始化期间返回未定义。如果传递给还原程序的状态未定义,则必须显式返回初始状态。“如何初始化它?”

reducer_book.js:

导出默认函数(){
返回
[
{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中定义”我特别登录,只是为了升级投票。谢谢你,马克