Tôi nhận được lỗi Unexpected key "characters" found in initialState argument passed to createStore. Expected to find one of the known reducer keys instead: "marvelReducer", "routing". Unexpected keys will be ignored.
Phản ứng Redux chính bất ngờ thông qua để tạo ra cửa hàng
rootReducer:
import { combineReducers } from 'redux';
import { routerReducer } from 'react-router-redux';
import marvelReducer from './marvelReducer';
const rootReducer = combineReducers({
marvelReducer,
routing: routerReducer
});
export default rootReducer;
marvelReducer:
import { FETCH_MARVEL } from '../constants/constants';
import objectAssign from 'object-assign';
export default function marvelReducer(state = [], action) {
switch (action.type) {
case FETCH_MARVEL:
return objectAssign({}, state, {characters: action.data});
default:
return state;
}
}
cửa hàng:
import { createStore } from 'redux';
import { syncHistoryWithStore } from 'react-router-redux';
import { browserHistory } from 'react-router';
import rootReducer from '../reducers/index';
const initialState = {
characters: []
};
const store = createStore(rootReducer, initialState);
export const history = syncHistoryWithStore(browserHistory, store);
if (module.hot) {
module.hot.accept('../reducers/',() => {
const nextRootReducer = require('../reducers/index').default;
store.replaceReducer(nextRootReducer);
});
}
export default store;
tôi có mã rất giống nhau trong một ứng dụng khác và nó hoạt động tốt. Bạn không chắc chắn những gì đang xảy ra ở đây
đặt trạng thái ban đầu là tên thuộc tính giống như trình giảm tốc, điều đó có kết thúc ghi đè bộ giảm tốc không? – erichardson30
@ erichardson30 Nó không - nó sẽ chỉ đơn giản là thiết lập một trạng thái ban đầu, nó không ghi đè lên bộ giảm tốc. Dưới đây là hướng dẫn thêm một chút từ [tài liệu redux] (http://redux.js.org/docs/api/createStore.html) '[initialState] (bất kỳ): Trạng thái ban đầu. Bạn có thể tùy chọn chỉ định nó để hydrate trạng thái từ máy chủ trong các ứng dụng phổ quát, hoặc để khôi phục một phiên người dùng được tuần tự hóa trước đó. Nếu bạn tạo ra reducer với kết hợp các bộ lọc, thì đây phải là một đối tượng đơn giản có hình dạng giống như các phím được truyền cho nó. Nếu không, bạn được tự do chuyển bất kỳ thứ gì mà trình giảm tốc của bạn có thể hiểu.' –
"Có sự không phù hợp nhỏ giữa những gì bạn đặt làm trạng thái ban đầu của cửa hàng và những gì bạn yêu cầu cửa hàng mong đợi trạng thái ban đầu của cửa hàng sẽ là gì" Tôi thực sự không thể làm theo tuyên bố này, bạn có thể xây dựng một chút rõ ràng hơn? – stevematdavies