Подтвердить что ты не робот

Передача реквизитов для компонента-реактора-редукта

У меня есть компонент контейнера реакции-redux, который создается в компоненте React Native Navigator. Я хочу иметь возможность передать навигатор в качестве опоры для этого компонента контейнера, чтобы после нажатия кнопки внутри его презентационного компонента он мог выталкивать объект в стек навигатора.

Я хочу сделать это без необходимости писать весь код шаблона, который дает мне компонент контейнера реакции-редукта (а также не пропускать все оптимизации, которые отреагировал-редукс тоже дал бы мне здесь).

Пример кода компонента контейнера:

const mapStateToProps = (state) => {
    return {
        prop1: state.prop1,
        prop2: state.prop2
    }
}

const mapDispatchToProps = (dispatch) => {
    return {
        onSearchPressed: (e) => {
            dispatch(submitSearch(navigator)) // This is where I want to use the injected navigator
        }
    }
}

const SearchViewContainer = connect(
    mapStateToProps,
    mapDispatchToProps
)(SearchView)

export default SearchViewContainer

И я хочу, чтобы иметь возможность вызвать компонент, как это из моей навигационной функции renderScene:

<SearchViewContainer navigator={navigator}/>

В приведенном выше коде контейнера мне нужно будет получить доступ к этому переданному опору из функции mapDispatchToProps.

Мне не нравится хранить навигатор на объекте состояния redux и не хочу передавать подсказку на презентационный компонент.

Есть ли способ, которым я могу перейти в опору к этому компоненту контейнера? Альтернативно, есть ли альтернативные подходы, которые я пропускаю?

Спасибо.

4b9b3361

Ответ 1

mapStateToProps и mapDispatchToProps обе принимают ownProps как второй аргумент.

[mapStateToProps(state, [ownProps]): stateProps] (Function):
[mapDispatchToProps(dispatch, [ownProps]): dispatchProps] (Object or Function):

Для справки

Ответ 2

Вы можете передать второй аргумент mapStateToProps(state, ownProps), который даст вам доступ к реквизитам, переданным в компонент в mapStateToProps