redux createSlice返回的缩减器函数

4xy9mtcn  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(156)

我有这2个文件从redux教程:
store.js:

import { configureStore } from '@reduxjs/toolkit'
    
    import postsReducer from '../features/posts/postsSlice'
    
    export default configureStore({
      reducer: {
        posts: postsReducer
      }
    })

这是“../features/posts/postsSlice”文件,但导出的函数是postsSlice.reducer而不是postsReducer

import { createSlice } from '@reduxjs/toolkit'
        
        const initialState = [
          { id: '1', title: 'First Post!', content: 'Hello!' },
          { id: '2', title: 'Second Post', content: 'More text' }
        ]
        
        const postsSlice = createSlice({
          name: 'posts',
          initialState,
          reducers: {}
        })
        
        export default postsSlice.reducer

我想知道商店中导入的postsReducer函数是从哪里来的。

l3zydbqr

l3zydbqr1#

JS中有两种类型的导出:命名导出和默认导出。
指定命名的导出时,export关键字后跟声明。请注意,每个模块可以有多个命名导出。例如:

export const foo = 'hello';
export function bar() {
  return 'world';
}

要导入命名导出,我们使用import关键字,后跟要导入的值的名称(用大括号括起来)。例如:

import { foo, bar } from './myModule';

console.log(foo); // 'hello'
console.log(bar()); // 'world'

默认导出是一种指定值的方法,可以使用任何名称导入该值。但每个模块只能有一个默认导出。下面是一个示例:

export default postsSlice.reducer

要导入默认导出,请使用import关键字后跟您选择的任何标识符-您可以使用与导出中使用的名称不同的名称(如上面的情况)

import postsReducer from '../features/posts/postsSlice';

您可以在MDN文档中阅读更多关于在JavaScript中导出和导入模块的信息:

相关问题