我无法理解为什么我的函数 returnSlidesReducer()执行两次。 我正在使用Redux。
我的reducer文件 slides.js 是(读取json文件并将数据返回到商店):
import jsonFile from '../sliderContent.json';
const returnSlidesReducer = (slidesContent) => {
console.log(slidesContent);
return slidesContent;
}
returnSlidesReducer(jsonFile);
export default returnSlidesReducer;
我的 index.js :
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')
);
在控制台中我得到:
因为在商店里我得到 undefined 。
答案 0 :(得分:1)
请参阅Redux
doc:
function todos(state = [], action) {
switch (action.type) {
case 'ADD_TODO':
return state.concat([action.text])
default:
return state
}
}
let store = createStore(todos, ['Use Redux'])
您不需要像您一样明确调用缩减器功能。
如果要将json对象用作初始状态,可以将其作为第二个参数传递给createStore(..)
createStore(returnSlidesReducer, jsonFile);
另一方面,您的减速机功能不是标准的redux减速机表格。我建议关注the official Redux
example。