<Provider> не поддерживает изменение `store` на лету при использовании componentWillMount или componentWillUnMount - PullRequest
0 голосов
/ 24 мая 2018

не поддерживает изменение store на лету.Скорее всего, вы видите эту ошибку, потому что вы обновили Redux 2.x и React Redux 2.x, которые больше не поддерживают редукторы горячей перезагрузки автоматически

, когда я использую componentWillMount и componentWillUnMount, я получаю эту ошибку

import React, { Component } from 'react';
import { View, NetInfo, Image } from 'react-native';
import { Container, Text } from 'native-base';
import { RootNavigator } from './src/root';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import resducers from './src/reducers/index';

export default class App extends Component<Props> {
  constructor(Props){
    super(Props);
    this.state={
      connection:null,
    }
  }

  componentWillMount(){
    NetInfo.isConnected.addEventListener("connectionChange",this.handleConnectionChange);
    NetInfo.isConnected.fetch().done((isConnected)=>this.setState({connection:isConnected}));
  }

  componentWillUnMount(){
    NetInfo.isConnected.removeEventListener("connectionChange",this.handleConnectionChange);
  }

  handleConnectionChange=(isConnected)=>{
    this.setState({connection:isConnected});
  }

  handeView(){
    if(this.state.connection!==null && this.state.connection){
      return <RootNavigator />
    }else {
      return <View style={{flex:1, flexDirection:"row", alignItems:"center", justifyContent:"center"}}>
         <Image source={require("./images/connection.gif")} style={{height: 150, width: 150, resizeMode : "stretch"}}/>
      </View>
    }
  }

  render() {
    return (
      <Provider store={createStore(resducers)}>
         <Container>
             {this.handeView()}
         </Container>
      </Provider>
    );
  }
}

1 Ответ

0 голосов
/ 24 мая 2018

Каждый раз, когда ваш Компонент рендерится, создается новый магазин.Попробуйте создать свой магазин за пределами вашего компонента.

import resducers from './src/reducers/index';    
const store = createStore(resducers);

-

<Provider store={store}>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...