关于javascript:函数执行两次

Function executes twice

我不明白为什么我的函数returnSlidesReducer()执行两次。
我正在使用Redux。

我的减速器文件slides.js是(读取json文件并将数据返回到商店):

1
2
3
4
5
6
7
8
9
10
import jsonFile from '../sliderContent.json';

const returnSlidesReducer = (slidesContent) => {
  console.log(slidesContent);
  return slidesContent;
}

returnSlidesReducer(jsonFile);

export default returnSlidesReducer;

还有我的index.js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import {
  createStore
} from 'redux';
//import allReducers from './reducers';
import SlidesReducer from './reducers/slides';

const store = createStore(SlidesReducer);

ReactDOM.render(
  <App />,
  document.getElementById('root')
);

在控制台中,我得到:

  • {slider:Array(3)}
  • 不明确的
  • 由于这个原因,我在商店中不


    Redux doc:

    中从示例待办事项应用程序中查看化简器

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function todos(state = [], action) {
      switch (action.type) {
        case 'ADD_TODO':
          return state.concat([action.text])
        default:
          return state
      }
     }

    let store = createStore(todos, ['Use Redux'])

    您不需要像您一样显式调用reducer函数。

    如果要使用json对象作为初始状态,可以将其作为第二个参数传递给createStore(..)

    1
    createStore(returnSlidesReducer, jsonFile);

    请注意,您的reducer功能不是标准的redux reducer形式。我建议遵循官方的Redux示例。