Redux - как получить доступ к магазину «рассылка» после предоставления его провайдеру? - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть следующие файлы:

index.js

const store = createStore(...)
ReactDOM.render(<Provider store={store}><BrowserRouter><App/></BrowserRouter></Provider>, document.getElementById('root'));

Компонент App: (App.js)

const App = withRouter(connect(mapStateToProps, mapDispatchToProps)(Main))
export default App

Так как же я могу получить доступ к store.dispatch внутри Main компонента? Если я попытаюсь сделать это по store.dispatch({...}), я получу:

'store' не определен no-undef

Ответы [ 3 ]

0 голосов
/ 05 ноября 2018

Ваш компонент не должен обращаться к хранилищу напрямую - connect абстрагирует его.

См. Нашу новую страницу документации React-Redux на connect: диспетчеризация действий с помощью mapDispatchToProps для получения полного описания того, как обрабатывать диспетчерские действия.

0 голосов
/ 05 ноября 2018

Если mapDispatchToProps выглядит так:

const mapDispatchToProps = dispatch => ({
    myAction1: () => dispatch(myAction1())
});

connect(mapStateToProps, mapDispatchToProps)(Main)

... тогда в компоненте можно позвонить this.props.myAction1()

Если mapDispatchToProps использует bindActionCreators :

const actions = { myAction1, myAction2 };

const mapDispatchToProps = dispatch => bindActionCreators(actions, dispatch);

... затем в компоненте можно вызвать this.props.myAction1() и this.props.myAction2()

Если mapDispatchToProps не определено:

connect(mapStateToProps)(Main)

затем в компоненте вы можете получить доступ к this.props.dispatch

0 голосов
/ 05 ноября 2018

функция отправки должна быть доступна через this.props this.props.dispatch ()

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