Tôi có ứng dụng React tự động tải mô-đun, bao gồm chức năng giảm tốc của mô-đun và sau đó gọi trình thay thế của Redux, thay thế bộ giảm tốc. Rất tiếc, tôi gặp phải lỗi củaReplaceReducer gây lỗi khóa bất ngờ
Khóa không mong muốn "bookEntry" được tìm thấy trong đối số initialState được truyền cho createStore. Dự kiến sẽ tìm thấy một trong các khóa giảm tốc đã biết: "bookList", "root". Các khóa không mong muốn sẽ bị bỏ qua.
nơi bookEntry là một khóa trên bộ giảm tốc cũ hơn đang được thay thế. Và bắt đầu với mô-đun bookEntry và chuyển sang bookList gây ra lỗi nghịch đảo này
Khóa không mong muốn "bookList" được tìm thấy trong đối số initialState được truyền cho createStore. Dự kiến sẽ tìm thấy một trong các khóa giảm tốc đã biết: "bookEntry", "root". Các khóa không mong muốn sẽ bị bỏ qua.
Mã dưới đây - không nhận xét rằng mã nhận xét thực tế sửa lỗi này, nhưng tôi đoán là không cần thiết.
Tôi có làm điều gì đó sai trái với Redux đang tạo mã này cần thiết không?
function getNewReducer(reducerObj){
if (!reducerObj) return Redux.combineReducers({ root: rootReducer });
//store.replaceReducer(function(){
// return {
// root: rootReducer()
// }
//});
store.replaceReducer(Redux.combineReducers({
[reducerObj.name]: reducerObj.reducer,
root: rootReducer
}));
}
Có lý do cụ thể nào bạn muốn xóa bộ giảm tốc trước đó khi tải mã động không? Tôi không hiểu lắm. Nói chung bạn muốn các bộ giảm tốc cũ ở lại, không được tháo ra. –
@DanAbramov - hm, không có lý do cụ thể.Tôi chỉ giả định mô-đun đi sẽ "dọn dẹp" sau chính nó. Có phải đó không phải là cách tôi nên làm điều đó trong thực tế? Tôi có nên tắt một công văn để xóa dữ liệu của nó, nhưng để lại bộ giảm tốc? –
Mục đích của "dọn dẹp" là gì? Thông thường, bạn chỉ cần giữ dữ liệu xung quanh trong trường hợp người dùng quay lại trang này. –