2017-09-05 91 views
4

错误信息 -<Provider>不支持随时改变`store`在reactnative +终极版

供应商不支持随时改变商店。您最有可能看到此错误,因为您已更新到Redux 2.x和React Redux 2.x,它们不再自动重新加载减速器。有关迁移说明,请参阅https://github.com/reactjs/react-redux/releases/tag/v2.0.0

configureStore.js -

import { createStore,applyMiddleware } from 'redux'; 
import ReduxThunk from 'redux-thunk'; 
import reducers from './reducers'; 

export default function configureStore(initialState) { 
    const store = createStore(reducers,{},applyMiddleware(ReduxThunk)); 

    if (module.hot) { 
    // console.log("in module.hot"); 
    console.log(reducers); 
    module.hot.accept(() => { 
     const nextRootReducer = require('./reducers/index').default; 
     store.replaceReducer(nextRootReducer) 
    }); 
    } 
    return store; 
} 

App.js -

render(){ 
    const store = configureStore(); 
    return(
      <Provider store = {store}> 
       <Container> 
         <Login/> 
       </Container> 
     </Provider> 

refrence - 视频 - https://www.youtube.com/watch?v=t2WXfAqLXJw
github上 - 在给定的视频https://github.com/reactjs/react-redux/releases/tag/v2.0.0

方案是这样实现

回答

4

您已经实现了在模块热加载时更改减速器的要求,但您仍尝试为每个渲染器创建新的存储器。

请尝试将您的configureStore()调用移动到组件外部。

const store = configureStore(); 

class App extends React.Component { 

    render(){ 

     return(
       <Provider store = {store}> 
        <Container> 
         <Login/> 
        </Container> 
       </Provider>