Можно ли обновить магазин вне контекста провайдера в Redux? - PullRequest
0 голосов
/ 24 июня 2019

У меня есть некоторые параметры конфигурации, которые я хочу установить и сохранить в онлайн-хранилище перед загрузкой основного приложения.Это сделано для того, чтобы у всех дочерних компонентов уже были предварительно загружены данные конфигурации, и они могут прочитать их из хранилища, используя redux-connect.

На данный момент я знаю только, как использовать и обновлять хранилище внутри моих подключенных компонентов, которые заключены в контекст поставщика.

Есть ли способ обновить его вне этого?

Например:

class App extends React {
   constructor(props) {
      super(props);
      // UPDATE REDUX STORE HERE
   }

   componentDidUpdate() {
      // OR UPDATE REDUX STORE HERE
   }

   render() {
       return (
           <Provider store={store}>
              <Child />
           </Provider>
       );
   }
 }

Возможно ли это вообще?

Ответы [ 2 ]

2 голосов
/ 25 июня 2019

store - это просто объект, содержащий функции dispatch и getState. Это означает, что везде, где хранилище доступно вне приложения, вы можете манипулировать им, используя эти атрибуты.

const store = configureStore();

const App = () => (<Provider store={store} />);

store.dispatch({ type: SOME_ACTION_TYPE });
0 голосов
/ 25 июня 2019

Вы можете позвонить Поставщику за пределы App Компонента в index.js

ReactDOM.render(
    <Provider store={store}>
        <App/>
    </Provider>

    , document.getElementById('root'));

Теперь в вашем классе приложений можно добавить connect или updateAction

import {connect} from "react-redux";
import {updateStuf} from "./actions/projectActions";



class App extends Component {
    componentWillMount() {
        this.props.updateStuf();
    }

    render() {
        const {stuff} = this.props;
        return (
                <div className="stuff">

                </div>
        );
    }
}

const mapStateToProps = (state) => {
    return {
        stuff: state.project.stuff
    }
}
export default connect(mapStateToProps, {updateStuf})(App);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...